6 ms·
> I am 42-year-old very successful programmer who has been through a lot of situations [...] Early on as a programmer, I was often in situations like you descri
by zeteo 12y ago
> I am 42-year-old very successful programmer who has been through a lot of situations [...] Early on as a programmer, I was often in situations like you describe. [...] If I could go back to my early career I would mercilessly cut out all the shitty jobs I did
You know, it's hard to believe it, but at some point parents forget what it felt like being a teenager, and senior developers being junior. I know I'm going hard against the grain here, but I think you're better off doing as jblow did, not as he says.
Priority #1: survive, life gets better. In any organization that's large enough to have a pecking order, sh*t rolls downhill. Your CEO meets the customer's CEO and sees some fish on the office walls. He decides that an aquatic theme will increase sales, and passes it on to project management. PMs are slightly bemused, but figure out some web pages that can feature animated fish, and vet the idea with senior developers, who agree it can be done before the next trade show. The senior developer creates the fish_type, group_of_fish and fish_animation tables, grabs a few morsels that are fun to implement (new web technologies, yay!), and passes the rest to you. Congratulations, you're the junior developer at the bottom of the scrap heap! You not only have to deal with all the crap nobody else wanted, but will also explain it as lines of code to your computer. And, after re-implementing several times to address all concerns from meetings you were never invited to, it turns out the customer's CEO had borrowed the office and actually hates fish since choking on a herring bone 32 years ago.
How do you deal with all this? Well, maybe quitting will find you a better job as a junior developer. (Also, maybe an uncle you never knew suddenly leaves you his fortune.) But realistically, the way most people do it is the same as jblow's. You find ways to survive, improve your resume, and eventually move uphill to have more choice in kinds of crap you need to deal with. Sharing your hard-earned wisdom with junior developers will only be the cherry on top at that point...
- jblow 12y agoYou are presuming a lot about what my early career looks like. Really I never worked any jobs as bad as what you describe. Well, maybe the time I did data entry during my first year of college. The longest I ever worked in a highly corporate environment was 7-8 months, but at least at that time I was doing something at least slightly cool (a port of Doom 2 back when that was a new game, and with which I had full autonomy). What you seem to assume is normal is some kind of career hell I would never want to be in (nor have ever been in).
- rturben 12y agoI'm someone graduating from college in a few months, and this is one of the most striking things to me about a programmer's expected outlook on jobs. The career path of going and getting an internship, then becoming a junior developer, etc etc at some corporation is something that seems like it would suck the soul out of anyone that is even moderately creative. During my first internship at a "normal" corporation, I felt exactly like septerr does now. I can't imagine following the career path most programmers go down, even if it is going to pay well. How did you avoid (or is it even possible to avoid) going through that corporate phase and skipping right to working on something that you may love but may harbor more intrinsic risk?
- jblow 12y agoI just did it. It's not magic. I did have about a year of money saved up from previous jobs (relatively highly-paying contract work).
- nostrademons 12y agoFor me, it came from understanding what I did not know, and that to do high-level creative work you need a large base of background knowledge. I just took every job as an opportunity to learn and fill in the gaps in my knowledge, so that I'd be better prepared when I did strike out on my own. I have gaps in between every job I've ever held, but those gaps are strategic. In them, I figure out what I really want to do, and whether I have the tools to do what I really want to do. I applied to YC's first class of S05, as I was finishing up college. I didn't get in. I figured that if investors wouldn't talk to me, I'd learn how to do a bootstrapped startup, so I went to work for a bootstrapped financial software startup. After 2 years there, I quit and founded my own bootstrapped startup, this time in Web 2.0 casual games. It failed too. In examining the failure, I figured that I lacked enough real-world experience to understand what the real markets were, I'd exhausted my pool of potential co-founders, and I had this continuing anxiety about how to do software development "the right way" and make programs that scale. So I moved out to California to work for Google Search. I'm on my own again, but I got everything out of Google that I hoped to get out of it (and more!). If you're doing it right, each job is an opportunity to get a lot more than money. It's a chance to build technical experience, to challenge yourself, to look at how people with way more experience than you make decisions, to understand how an industry works, and to see how an organization fits together.
- deleted 12y ago[deleted]
- omarhegazy 12y agoIt's very possible to improve your skills on the side for a much, much better junior position. Resume padding and climbing the corporate ladder is not as effective as it used to be. Do the least amount required in your current job to pay the bills, then, on the side, improve your skills. You don't need to climb up the corporate chain and suck dick until it's your dick being sucked. The "Good HS grades -> Good college -> Good junior level job at a corporation -> stick at that corporation until you get a good senior level job" is firmly stuck in the 60s, 70s and 80s for a reason. The highest salaried jobs in programming are going to kids job-hopping from company to company in the Bay Area, graduating from average colleges (some minority not even having a degree) working at top companies who's HR departments publicly disavow the previously worshiped legitimacy of the GPA (word is, Google HR isn't even allowed to look at your GPA). I recently glanced over this test Andreessen-Horowitz was giving out to recruit software engineers for some in-house development thing they were doing. In the description for the application, they said : "A resume is a plus, but you don't need to have it." I know that, obviously, people with college degrees from top colleges have a higher rate of success in the corporate marketplace. Killer resumes and years of experience will likely get you very far. Sticking around at a successful company for a lot of years will likely get you a very respected senior role with really awesome stock options. But the point is, for whatever very small but still existent minority, 19 year old college dropouts that have done 3 6-month jobs are still getting hired. Which means that a killer resume and corporate ladder climbing aren't hard-and-fast requirements anymore -- the only hard-and-fast requirement is merit. Obviously years of working within a single environment will get you a lot of merit, and obviously Google will start locations in Ann-Arbor and Pittsburgh just cause UMich and CMU are there, but that's just because Google values those areas for their high rate of merit, not for their pre-existing prestige. And what OP is describing certainly shows that he is not properly developing his merit. Now, in the 60s through 80s, there weren't really too many resources available to improve your merit on your own. So if you were in a shitty position you mostly just grit your teeth until you got in a slightly better position to improve your merit that involved less teeth-gritting and more enjoyable skill growth, and then used that skill growth to get into a slightly better position, ad infinitum where the base case is your retirement. So the best advice was to stick in a single corporate environment until you stopped being a junior and started becoming a senior because there was no more efficient way to develop your merit. But nowadays, there are resources aplenty and much more efficient ways of developing merit. It's very easy to get cheap access to field-defining textbooks and online lecture videos and PDFs and ebooks and cheap personal computers with which to tinker around with and yadda yadda yadda, all of which can be done by any reasonably smart and dedicated but unexperienced young person, all of which is a much better use of said young person's time than climbing the corporate ladder until you got a job that didn't make you want to kill yourself. So it's very possible to develop your skills and your merit without the prestige that you used to need in the form of a killer resume or long corporate history or stellar college grades. So as long as you mastered your data structures & algorithms, your theoretical computer science, so as long as you mastered programming principles and can really say you're an expert in a language because you spent many man hours hacking away with that language at home, so as long as you know your OO, so as long as you prep up with the plentiful blog posts there are about mastering interviews (even for specific companies -- Steve Yegge has written a couple blog posts about mastering the Google interview, and for specific languages -- and I've very recently come across a very useful and thorough blog for knowing the ins-and-outs of Java for mastering interviews that demand expertise in that language), you can get an awesome job. Even if you never land a interview with Google or Facebook (because at that scale, so many hopeless hopefuls apply and you couldn't possibly scale HR with the rate of applicants, so you sort of have to rely on less-than-perfect prestige requirements like college degree from a decent college or networking with other good companies in the Valley. But I'm saying that the modern age allows for extremely low barriers for finding quality applicants and getting quality knowledge to become a quality applicant, and while there are certain institutions where you still sort-of need to reply on prestige, for the most part the industry is becoming a lot better) , you can definitely land a phone screen with an awesome software shop at least better than whatever shitty position you're currently in, and then you can get the interview after you display competence in the screen, and then you can land the job. And after that, it's all improving : improving your skill with awesome workmates in an awesome environment, and then eventually moving on to greener pastures at ... greener?... companies if it is your desire to do so. Note that I'm not saying getting a more fulfilling job is easier by any means. Top companies will still only take top people. Just that, as barriers between companies and applicants lower and modern technology makes judgment of qualification more efficient, "top" is going to rely more on merit than prestige. And you do not gain any merit from staying at a shitty job.