While in-person courses can be a great way to build a basic foundation, I (and I imagine many other self-taught engineers) have been extremely fortunate to have some great mentors along the way who gave us tons of support and excellent advice. In the days following the article I wrote last week regarding coding bootcamps, many budding developers wrote in asking for more tangible advice. Below is a list of four pieces of advice that I received over the past 18 months from my mentors which I found to be the most useful in not only making me more marketable to hiring managers, but also helping me grow substantially as a developer:
1. Build and host your personal website
While this seems like an obvious step, it is perhaps one of the the most important. Your website will become a portal for you to present yourself to both employers and the development community at large. If you already own the domain you want to use, that’s awesome. Otherwise you can pick up a cheap domain through registrars such as Name.com or NameCheap.com. Try to avoid 1and1 or GoDaddy if you can.
While many registrars also offer hosting, avoid using it. Deploying a website through a registrar is pretty simple and you’ll learn a lot more by getting a virtual machine through a service like Linode or Digital Ocean. I personally like Linode because you really just get a plain, vanilla Linux VM. Additionally, it has an incredible array of wiki entries and development resource for you to get off the ground. You can also check Feross Aboukhadijeh’s blog post on how to configure your linode instance for maximum awesomeness.
2. Don’t use Django or Ruby on Rails
3. Learn C the hard way
Languages like Ruby and Python are great at helping budding developers get up to speed with core computer science concept. Additionally, they read pretty easy on the eyes and make writing programs that actually do something a lot faster. It’s no surprise then that Ruby or Python tend to be the go-to languages of developer bootcamps. But as incredible as they are, they hide a ton of functionality under the hood. As it is, a lot of the Ruby and Python stand libraries are built on top of C.
While C can be really intimidating for new developers, it’s really close to the machine and, by learning it, any budding developer will have a much better understanding of the various aspects of a language like Ruby or Python, in addition to better foundational knowledge of computer science. Developer Zed Shaw has made it easier than ever to learn C, publishing a free e-book called Learn C The Hard Way. You can also pick up a short O’Reilly book on C for free over at IT eBooks to read along the way.
4. Attend local MeetUp groups
Developers are nice people and many out there willing to help inexperienced programmers pick up new tools and grasp tougher concepts. If you live in a major metropolitan area, chances are there is a language specific MeetUp group in your area. Go to it. Meet other developers, nerd out on code and ask them some of the tougher questions you might have. In my experience, the developers I’ve met at MeetUps have been nothing but helpful.