I've recently started to watch reddit on a regular basis. Generally the conversation and information I Get there is a lot more interesting than Facebook. In the Computer Science Career Questions subreddit. The subreddit seems to be made up of primarily students or people on their first two years of the job. Someone asked me for some valuable life lessons, and my response has been getting way more upvotes than I'm used to. I thought I'd make an interesting non-technical blog post.
Here are some of the advice I'd give to people just starting out their careers. In no particular order:
- Don't Quit: Keep your current job until you have a new one lined up. There is some psychology involved. When people hear you are happily employed they experience the thrill of the chase. When they don't have a job they think there may be something wrong with you. Ashton Kutcher has some great words on this sentiment.
- Know Your Priorities: I spent the past 18 years as a consultant running my own biz. Most people view me as a successful businessman, but I've had a lot of missteps. I would probably be a lot richer going the 'traditional' route and switched jobs every 3-5 years. I have always valued flexibility over money. What are your values and how does that apply to your career choices?
- Don't be Afraid to Fail: I've been involved in ~15 different ventures of varying success over the past 30 years. Hugely satisfying even if not always profitable. Go for it!
- Control your Spending: Research the FIRE movement. FIRE stands for Financial Independence, Retire Early. The gist is keep your expenses low, invest what is left over and soon the investment return will be more than your expenses, eliminating the need to have a job. I'm not FIRE yet, but keeping expenses low is part of what kept me in business during various failures. Corollary: Max out your tax deductible retirement contributions. Mr Money Moustache has become an unofficial spokesperson for the for the FIRE movement.
- Learn how to Communicate: Take a writing course or public speaking course. This is probably more important to your future job prospects than anything technology related. Taking a Dale Carnegie course is recommended.
- Keep in Touch: Reach out to friends and colleagues at least once a year to say "Howdy, let's do lunch." You never know where your next opportunity will come from, and even if nothing comes of it it's good to keep connections with people.
- Technology works on a Cycle: Everything old becomes new again. Lotus Notes was a 'NoSQL' database in the 80s/90s that worked on similar client-server principles that the web works on today. The VAX machine my college uses had dumb terminals with a server doing the heavy work--not unlike a Chromebook using Google Services. Programming languages are similar. It is often hilarious to me see "all ya kids" trumpeting these brand new concepts from 20 or 30 years ago. Corollary: Businesses also work on a cycle and decentralize their infrastructure to increase efficiency and remove bottlenecks and centralize to increase company wide cohesiveness.
- Be Niche: I find there are more opportunities being a specialist than a generalist. But, don't be afraid to change that specialty, though. A decade ago I was one of the most prominent Flex/Flash Developers in the world, but that technology is less important today. Two decades ago I was a ColdFusion expert, a tech that is also less relevant today. Both of these skills still get me client work, though.
- Own You: A lot of the things you'll build for employers will be owned by them. Try to own as much as you as you can. Always be aware of the rights you're giving up. I recently turned down a book deal with a major tech publisher because they would not explicitly say that my self published writings were non-competitive.
- Read Contracts: Read something before you sign it. Ask for a copy for your records.
Hopefully you find this interesting. I'll be back next week with something more technical. ;)