On (not) sucking at my job

Oct 19, 2011 12:08

Previously on posts tagged with 'angst' (mostly friendslocked): our hero became depressed, sought help, and is now (mostly) feeling better. Now read on...

John Walker, in his excellent book The Hacker's Diet, distinguishes two approaches to tackling problems, which he calls the Manager's approach and the Engineer's approach. Management is about ( Read more... )

machine learning, jobs, programming, compilers, books, computers, mental health, links, angst

Leave a comment

Comments 10

Assembly language experience aaroncrane October 19 2011, 11:56:08 UTC

Another approach to remedying your perceived lack of assembly language experience would be to spend some time writing some assembly code, on the assumption that you can’t get good at it without practising. That’s harder than the equivalent approach for a higher-level language, of course, because it’s hard to write anything large (and therefore useful) in assembly.

Perhaps try reimplementing some bits of the standard C library, or something, with scaffolding written in C? Maybe start with strchr(), then move on to a naïve strstr(), then a Knuth-Morris-Pratt (or similar) algorithm. Or instead of increasing the difficulty of the algorithm being implemented, try focussing on performance improvements (or, um, power-use decreases). If desired, compare your code with the output of existing compilers for equivalent C-written routines, at various optimisation levels.

Given the utter insanity of the x86 instruction set architecture, it might also make sense to start with ARM (or PowerPC or Sparc or what-have-you) before tackling x86. I ( ... )

Reply

Re: Assembly language experience pozorvlak October 19 2011, 20:48:10 UTC
Perhaps try reimplementing some bits of the standard C library, or something, with scaffolding written in C?

Which would have the pleasant side-effect of getting me more familiar with the standard C library. I like it.

Reply


(The comment has been removed)

Re: Lack of assembly experience pozorvlak October 19 2011, 20:47:03 UTC
Why not take a look at some of the microcontrollers, where there are fewer barriers between Getting Something Happening and your code?

That's an excellent idea. It's been a while since I've done any electronics, though: how much hardware hacking would I have to do to get to a usable dev board?

Something I've considered doing for a long time now is implementing a dialect of Forth from bare metal.

That would be fun :-) Probably a bit advanced for me right now, though - possibly something to consider after trying Aaron's idea of implementing some of the standard C library.

I'm almost embarrassed to say that the greatest obstacle to me doing this is finding an aesthetically pleasing machine to do it on!

Raspberry Pi?

Reply


andrewducker October 19 2011, 17:21:48 UTC
Sometimes, I feel very happy that I'm very well regarded for my programming skills where I am. Because if I was working in a low-level software company I'd rank much, much lower :->

Reply

pozorvlak October 19 2011, 20:35:56 UTC
Yeah, but you're presumably much more clued-up than my colleagues about the stuff that you do work on :-)

That said: abstractions leak, and every so often when you're working on something high-level you'll get bitten by some low-level issue. I'm thinking of this job as an opportunity to get to grips with said low-level issues; even if I don't do any systems programming again, I reckon the increased understanding will probably save my bacon at some point in the future.

Reply

andrewducker October 19 2011, 21:03:10 UTC
Oh, absolutely.

I'm good at C# because I know how the stuff it's built on works. Most of the people around me don't think about that stuff, whereas I at least have an understanding of what's going on underneath.

Reply


atreic October 19 2011, 19:01:07 UTC
I think you're going about this in a very sensible way, but I would urge you to give more consideration to 'get another job' as an option. Of course, this is just because it worked for me, so I am biased.

Reply

pozorvlak October 19 2011, 20:33:32 UTC
I think that, given my current skillset, getting another job would just send me back to step 1. Only now it wouldn't be assembly language and linkers and BTACs that I didn't know about, it would be Javascript and CSS and mod_rewrite, or threading and AWS and HDFS, or some other set of technologies. And I'd be very unlikely to get such a long-term contract elsewhere.

Reply


I know it sounds facetious anonymous October 24 2011, 16:49:08 UTC
But I find that giving less of a shit helps a lot. You're doing well enough to get paid. That's why you're at work, after all - money.

Also bear in mind that you're way, way up the competence ladder already. Not to say don't try to get better still, but try not to worry about it so much. It's just work. After all, if you did genuinely suck at your job, you wouldn't be allowed to keep it.

Reply


Leave a comment

Up