Personal Work Study
Oct. 7th, 2009 02:50 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Originally published at AesTerra. You can comment here or there.
While my job situation continues1, I find myself in an interesting spot.Specifically, I am between professional careers, attempting to move from what was essentially a startup, to a higher paid, professional organization. Of these, I hope to get into Microsoft or Google, but I’ll settle for anything that lets me get my hands dirty with programming for a livable paycheck.
With programming in mind, I’ve discovered that skills atrophy if you don’t use them. Having finished a Master’s degree in Business (because it was free2), I’ve discovered that not only have my implementation skills declined since 2006, but that I require a crash course in Computer Science.
I’ve decided to give myself precisely that. I’m already a reasonably good implementer and designer, having shipped professional products and an award-winning game.3 However, I acknowledge that I lack a good background in theory, particularly related to the analysis of algorithms, complexity theory, and software design methodologies.
In the interests of being entirely open about this process, and so others might benefit, here’s the "curriculum" I planned for myself. Where appropriate, I’ve noted any supplemental materials or abuses of notation:
- Analysis of Algorithms
- Study of time and space complexity from AB2007,5 especially Turing machines,
,
, and conjecture related to
- A complete read of Petzold 2000
- Study of The Elements of C++ Style (MBG 2004), for notational and software clarity
- A refresher of x86 Assembly, regarding compilers and low-level implementation
- A refresher of C implementation, regarding memory management and language structure
- A refresher of C++ implementation, particularly class structure and problems of inheritance
- Implementations of the more useful algorithms in C++6
- A refresher project, consistent with my interests in 3D design
- Simple scene graph utility, culminating in what I hope will be a networked game
- Simple scene graph utility, culminating in what I hope will be a networked game
- In no deliberate order, Brooks 1995, HT 1999, SH 2006, and related books
- A read of Programming Interviews Exposed (MS 2000), so I can actually make it in the door
The prerequisites I bring to the table:
- Three professional years with C/C++ and Python
- A familiarity with Windows and Linux from the kernel level forward
- Practical experience in industry, from my former position
- A significant mathematical and 3D background, from Engineering and Second Life development
Is there anything I’ve missed that might be interesting here? If so, let me know, so I may add it to the list.
Thanks for reading.
—
Notes:
1 See http://goldkin.livejournal.com/3204.html.
2 By family faculty benefit. I was given an ultimatum to finish my studies prior to the end of the year, so I chose to use my existing credits for a one year degree. Since the college closed their MIS program, that left me with a generic MBA.
3 The details are not listed here, in order to keep a search barrier between work and my personal life.
4 Notational abuse of equality consistent with CLRS 2001. Wikipedia states this in terms of set notation (
5 Restating the material contained in these books would be tedious in what is already a long post. I may, however, post interesting implementations from my own code tree in future posts.
6 This necessitates discussion on my workflow for a future post. For now, I use a mixture of Emacs, GCC, Subversion, and the GNU build system.
This post excludes reference books, such as Design Patterns, manuals, and programming documentation.
no subject
Date: 2009-10-12 03:31 am (UTC)You could also start a company. :P
no subject
Date: 2009-10-13 08:17 am (UTC)After all, folks like
The trouble is really twofold. The first issue is ensuring I'm up to snuff as a contributor, which is more than most people consider upon taking on a new job. The second is making sure I know all the right theory to be able to cut through a technical screen in a horrendous economy. That's much harder, given the process may be entirely irrational.
Overall, the most difficult task is overcoming my own paranoia. With the job market and my own relatives telling me I should give up and work retail, it's all I can do to stay focused and keep coding. And the more I do, the more likely I'll be picked up by a technical company.
...
By the way, are you out in Seattleland, Z?
no subject
Date: 2009-10-25 07:48 am (UTC)Randomly, you might not want to put an emphasis on gamey stuff now. Consumer luxuries get hit hard during recessions, and game investments tend to have a short half-life. (E.g. most of MS's layoffs were in consumer stuff and games, afaik, while Windows is still hiring.)
No, not in Seattle nowabouts. Grew up there, though. Stop by every so often.
no subject
Date: 2009-10-26 02:14 am (UTC)buynice.org Оптовый поставщик минеральной косметики Мёртво
Date: 2013-07-05 05:29 pm (UTC)