Four Tips to Become a Better Coder (That Actually Work)
You've heard my criticisms of coding bootcamps; here's what to try instead.
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
Don’t get me wrong, Django and Rails are great technologies. They speed up the development process and make bringing a basic app to deployment a lot faster. But in doing so they also hide a lot of what goes on under the hood in the proverbial Django or Rails magic. Next time you want to build a web application try something like Sinatra (for Ruby) or Flask (for Python). They are much lighter weight and provide one with far fewer features right out of the box than either Rails or Django. Miguel Grinberg, an awesome developer who wrote the O’Reilly book on Flask development, offers an incredible 18-part tutorial on his blog for using Flask. If you want to really push yourself try using Flask or Sinatra to build an API and serve your data up to a JavaScript front-end application.
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 eBooksto 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.
(Image via Sergey Nivens/Shutterstock.com)