I made a request on Twitter earlier today, offering to answer questions from new or junior engineers coming in to the industry. My reasoning was that over the years I’ve had the good fortune to have had many great engineers and managers to learn from, and I want to be better at helping out those getting started with questions they have. Here’s my response to one reply:
#1: Stay the course
Life as an engineer can be frustrating. You will bang your head against many a brick wall and some days you will want to be anywhere but at a desk with a computer.
But this is the work you were meant to do, this is the work you are good at, and by a huge margin you will spend more time enjoying architecting, implementing, refactoring and shipping code than you will being frustrated.
You’ve made the right choice; Stick with it — stay the course.
#2: Try many languages, learn fundamentals
You stumbled on to using PHP because it was trivial to learn thanks to it’s forgiving nature and plethora of tutorials / code snippets. But the thing is, programming is a concept — take the fundamentals you’ve learned about programming and apply them in whichever language makes sense for whatever it is you are doing. Don’t become a language zealot — most every programming language has it’s place.
Learn all you can about algorithms, data structures, functional programming and optimization. Care strongly about performance. Never stop learning.
#3: Accept opportunities
Loyalty is a solid, positive trait. But when it comes to work, everything is business. Your employer wants to keep you and you are worth their investment in you, but if they needed to for the business to survive, or to get a better situation for the company, they would let you go. Don’t get mad at them for that, and don’t reject better offers for yourself due to loyalty alone.
Assess every opportunity on it’s merits and drawbacks, then make the choice that makes sense for you. If you’ve given your all for any employer from day one to the day you leave, there is nothing for you to feel bad about.
#4: Take risks
We all want to ship perfect code, at the perfect time. To wait for the conditions to be completely favorable before we launch something, try something, say something.
None of the above is ever going to happen, none of the above ever has happened. Take calculated risks. Don’t do anything downright dangerous, and always do your due diligence. But in the coming years you will launch code that disables the button that allows customers to add to cart on a site with traffic in the hundreds of thousands each hour, because of a simple mistake in your code. You’ll scramble to fix that a few minutes later, and the world doesn’t end. No one fires you. Soon after, you’ll release something in to production all in one go, at midnight, because no one you work with or for has any control over the deadline for getting it live, and it’ll work first time.
Take risks. Learn from them. Experience is the greatest asset you’ll ever grow.
#5: You’ll be glad you did this
School (University) didn’t exactly go the way your lecturers hoped, but don’t be put off.
Every hour you spent right-clicking and viewing source to learn HTML through your teens, every lecture you spent feeling tired (or missed altogether) because you were up until the small hours working through tutorials and code snippets to get better at PHP, every time you did something in the terminal because it had to be quicker than all those mouse clicks;
That all adds up to a number of skills that traditional education and the modern web development environment no longer teaches. It’ll stand you in good stead.
#6: Work ethic is king
Some people are geniuses. Others, blessed with good fortune or luck. One thing in your control, given you’re not really either of those types, is that you can work hard. You know you are pretty adept at this stuff; commit time and effort to it and you’ll do well.
#7: Visit Eastern Europe
You keep putting it off despite your strong desire to see the Czech Republic in particular. You don’t know it yet, but in a couple of years you’re going to move to the United States and it’s going to be way more difficult and way more expensive to go from there.
If you have a question for me in this space, reply to my original Tweet. Thanks!