4 ms·
Career Advice For Young Developers
- gojomo 18y agoMostly common sense, but I disagree with the third point: Choose between actual jobs, not companies People change roles within companies more often and easily than they change companies -- especially in smaller organizations. And good, growing companies with interesting challenges promote people from any starting position quickly. Meanwhile, a 'good' job in a more static company risks stagnation. So I would counsel the opposite of this post: choose the company moreso than the job.
- bigbang 18y agoI guess what he meant was, dont worry about the brand names. Brand names create a lot of bias esp in college grads. Lots of goodies and great people working in the company, doesnt mean you will get to do interesting work.
- ErrantX 18y agoI kinda agree. Certainly go for a job you want - and not the brand you want ot work for. But I think the atmosphere you work in is important too. I couldn;t see myself working for a company wih strictt working times, for example. Or in an evironment that was too "stuffy".
- greyman 18y agoI agree with you. During my career I worked for 3 companies and technically my job was always the same - software developer, including both design and implementation. But the overall situation was different because every company has different culture, software development processes, etc. Having been 10 years in this industry, I am not a young developer anymore, but if I would have to look for a new job now, I would focus on two points: 1) Whether the company has good software development processes and experts in software engineeering I can learn from, in other words if they know "how to do software". It looks obvious, but you would be shocked how haphazardly some companies develop their software. If you end up in such a company, your grow as a developer will be slower. 2) Good paycheck. I don't say this is most crucial, but it just feels better if you have a feeling to be appropriately rewarded, money wise. ;-)
- nradov 18y agoI agree. Furthermore, it's important to choose the right type of company. Find one where software development is a core competency and a direct part of the value chain. When senior management sees you as just a cost to be minimized your opportunities for growth and advancement will be limited. I've been interviewing a lot of job applicants lately and have found that most of those who have worked for years in typical corporate IT departments are basically ruined. They only know how to do high-level "fill in the blanks" development and don't have what it takes to work for a software product or service vendor. Now to get back on track they would probably have to return to school and start over from scratch. Don't fall into that trap.
- queensnake 18y ago> When senior management sees you as just a cost to be minimized And they'll have the same attitude toward your dev. environment. Noisy, crowded environment, out-of-date tools, machines / upgrades hard to come by, or take forever ... I'm at my 2nd such because of other constraints.
- swombat 18y agoI'm not entirely sure the "Don't worry about job security" is that well timed, given the market as it is now, but it is good overall advice.
- gaius 18y agoYou can worry about it, but worrying's not likely to help...
- habs 18y agoWhat a fantastic article! over the last few months I've been thinking about finding a new job, but didn't want to gamble job security. I think this article has put a lot of things into perspective for me. Oh and I couldn't agree more with bigbang. The company I'm working for advertised themselves as a company with lots of goodies and great people working in the company, but I very rarely get to do interesting work and an hour at lunch playing on an Xbox really doesn't make up for that.
- jhancock 18y agooh yeah, and learn Objective-C. Apple has more cash than M$ now and Macs are selling like mad.
- silentbicycle 18y agoBetter yet, learn several languages that are significantly different from each other. That way, your mind will be more flexible, and you'll be able to pick up whatever languages are currently popular for marketing reasons on fairly short notice.
- jhancock 18y agook, lets settle for learning languages from the two companies with the top cash on hand: M$ and Apple. That should mean F# and Objective-C. And then learn a new language each year just to keep the juices flowing.
- silentbicycle 18y agoWill Microsoft and Apple lead the programming job market in ten years? (Will they exist?) I would rather hedge my bets and just focus on learning to program.
- edw519 18y agoNice writeup, but I think he forgot the most important one... "Delight your users." In my experience, everything else on OP's list is a byproduct of this. When you delight your users, everything will be easier and more fun, you'll get better feedback and support, and you'll be best positioned to steer your career. I you're not delighting your users (for whatever reason), do everyone a favor and either figure out how to or move on.
- cellis 18y agoCareer Advice For Young Developers: Start a startup while you're still young. Before you turn 21. Then you're old!
- nuclear_eclipse 18y agoBut I'm 23 and still in school! /me cries...
- ErrantX 18y agoI dont know. I'm 21 and am just kicking off my first major startup. I dont really think I am ready for it. I think a couple more years in-work experience (only een employed for 6 months out of university) would do me good... :)
- run4yourlives 18y agoYou will never be ready for it. Yes your chances of success might be less than someone with ten years experience, but failing will teach you more about startups than 10 years of work will.
- ErrantX 18y agofair point :D
- modoc 18y agoI'm 28, and while I have a number of failed startup companies/ideas in my past, my current one is a success (although it may not meet the criteria of a startup here, it's a small LLC that I've "started up"). The reason it's a success is that I have 10 years of experience working with hundreds of companies (lots of contracting, etc...), so I KNOW how big companies work, I KNOW what they need, and I KNOW how many large players in a particular niche are failing to provide good services/products. Which made it easy to for me to create a better offering, that was price competitive, and met the needs of a niche of large customers. So while I'm old, and while I definitely think you should start a startup when you're young, being old has it's advantages too:)
- tom_rath 18y agoHow could he have neglected to mention Test?! Test everything. Test it early. Test it extensively. If testing 'isn't needed' and is a 'waste of time' for the simple thing you're doing, it'll only take a few moments away from your busy day. If it was needed, you'll be glad you caught the error when you did. If in doubt, ask any veteran developer about the horror stories they ran into in production due to a minor bug that could have been caught at the point of development with a simple 'complete waste of time' test. Edit: I cannot understand why this is being down-modded to negative territory. This is classic 'advice to a young engineer'! Your development career is headed to a dead end if you cannot create reliable software.
- Retric 18y agoI know plenty of people who love to test everything and for some things it can be useful however I think the problem is more basic; Know The Code. If you write something that you think might work test it. If you know the code works, let other people test. Testing crap does not get rid of the smell even if it works but sometimes you do what you need to do.
- igorhvr 18y ago> Test everything. Test it early. Test it extensively. While in some contexts appropriate and many times helpful, testing is not the way to create reliable software. Willingness to learn from mistakes, knowing your limits and biases, practicing complete concentration, disciplined reasoning and careful thinking is.
- tom_rath 18y agoYes, testing is the way to create reliable software. How else can you find the 'mistakes, limits, biases', etc. which come from the 'concentration, reasoning and careful thinking' you THINK you have? Learning how to break your software is one of the best ways of ensuring you stop writing software that breaks!
- igorhvr 18y agoIf you don't reason properly, no amount of testing will save you. It is only part (an important one, surely) of what you need to create reliable software. I saw too many developers in a cycle like this: test->bang keyboard->test again (not working)->bang keyboard (now a hack) ->test again(still not working - let's try one more thing)->bang keyboard->test again (it works - Don't touch it!) which is why early focus on testing doesn't seem very sound advice. The original post is about "Career Advice For Young Developers" - and for a young developer, focusing on careful thinking is better than focusing on testing.