How to Become a Programmer
The Right Mindset
We as humans are always afraid to fail and that’s natural; however, when it comes to software development you have to be able to put yourself out there for critique and feedback from communities because it’s the easiest and most efficient way to grow. When I first began looking to develop software as not only a job but a hobby I was almost entirely committed to learning the entire language of say Ruby before I made anything other than simple programs to help you learn the language in theory. This was an error, I should have learned through trial and error because that’s what software development is. I should have thought of a project I would work on only incorporating Ruby (excluding the Rails framework) so that I can build on what I’ve learned and figure out how to manage a larger project which will help you greatly in the future. Right now I work on a project that has hundreds of thousands of lines of code not to mention the thousands of lines to test coverage for that fore mentioned code along with data bases. When you get your first software engineering job chances are you’re going to be working on a very large project most likely larger than the one I’m working on now. So you have to prepare for it through study and practice.
Put Yourself Out There
It was mentioned before that you have to be open to feedback and critique. You cannot be afraid to share what you’ve created with others no matter how redundant you think it is. Reach out to someone when you aren’t able to figure out an error your having. Stack Overflow is a great site when it comes to resolving errors in software you’re working on. Also, you can always turn to someone you know personally as they will be able to show you where your error is and answer any further questions you have. This is a great thing to do when you begin getting into software development, find someone who is a little bit ahead of you in the process or very far ahead of you. I’m speaking of course about a mentor or a teacher. Someone to help you and steer you in the right direction because when it comes down to it, it’s a massive field and with its rapid evolution it’s hard to learn what’s needed to know in the best order. It’s very beneficial to your start to have someone to turn to with advice; however, if you don’t know anyone you can always do some research and pick the one that looks the best to you. I personally started with Java Script and HTML at a very young age(12.) Later I met my first boss and close friend Travis Chase (CTO of Fort Awesome) who suggested picking up Ruby on Rails which I did and loved it. When it comes down to the things you need to learn it depends on what you’d like to build. If you’d like to build websites there are tons of different languages you could use. Ruby on Rails with CSS, JS, and HTML is a great way to go about it with a ton of options and a very active community. Python & Django are two other tools you can use for web development.
Find What’s Right for You
The most important thing about the learning process is after you’ve done your research or have been pointed in the right direction you have to stick to your decision. This is because once you learn your first language all the rest of them are so much easier to understand. This is the same for every component of software development because a lot of languages, frameworks, database systems, and engines get the same thing done but with different features. For example after you become familiar with a framework like rails for ruby you’ll be far more comfortable with others like Sinatra for Ruby. Where you start all depends on what you want to do and build. If you’d like to build websites there are tons of different languages you could use Ruby on Rails with CSS, JS, and HTML is a great way to go about it with a ton of options and a very active community as I said before. I said it again because it’s what I personally suggest. If you’d like to build games I would suggest using Unity to make some games; buy some books, watch some YouTube videos and start building a game. When it comes to building video games you will have to understand a lot more mathematical algorithms and know certain languages that are different from those web development driven ones. There are many more avenues of course these are just the two I was interested in when I first began. If or when you do your research on what to learn make sure to choose a language with a very vibrant and active community. Ruby has Gems that can help you with your code so much. Gems are basically addons or plugins that you put in your Gemfile (in a rails project) that help you with an array of things like payment systems for online shops, authentication, and user permissions. These things sound simple but it saves you a lot of time and work just being able to pull them into your code. They are all free of course. All or most other languages that are popular have an active community that will create these plugins for you; which is why a healthy community is a must in development. Usually a community will tell you how good a language is by its vibrance and depth. After that you’ll want to consider what you want to do and what language feels most comfortable to you then start learning.
Here’s a list of what I suggest for web development (which is what I have the most experience in)
- Ruby & the rails framework
- Python & the Django framework
- Elixir & the Phoenix framework
Display Your Work…Like for Actual Use
The most important part of starting is to put yourself out there. I don’t mean for feedback and critique necessarily, I mean to show what work you’ve done. You want to show your future employer your projects you’ve worked on. This shows that you’re passionate and serious about development as a career and hobby. If you’re doing it as a hobby this is less important than if you’re trying to do it as a career. You want to work on side projects like build a Gem for Ruby, build a game, or build a website to fulfill some purpose that way you can show possible employers these projects you’ve completed on your own for fun and practice. This will show your employer that you’re serious about becoming better at development, you enjoy doing these projects, and you understand what you’re doing. Seeing these projects makes the employer far more confident in you than he would be if you just stated the languages you know along with some frameworks and what not.
Have the Drive, It’s Not for Everyone
It should go without saying that if you’re looking to get into software development you should have the drive to build software, test it, and deploy it for personal use, private use, and even public use. They say a good writer spends around four hours daily writing or doing something to help their writing and creative process. It’s similar with development you want to put time aside to practice it and learn it daily. If you don’t practice these things then you’ll start to forget. When you start to forget it makes it far more difficult to get back into the swing of things in the future.
Recap & Final Thoughts
The time to begin with software development is now, don’t procrastinate. Always, ALWAYS be willing to put yourself and your creations out there for feedback as it will help you grow immensely as a software engineer. Choose your language wisely, make sure it can do what you’d like it to do and make sure it has a living community. Seek out someone or multiple people who can help you if you get stuck. When the things are listed out like that they seem pretty simple to accomplish but it will be a lot of blood, sweat, and tears to get the ball rolling on your software development career so begin today and save yourself the trouble.
As always if you need any help let me know and I will reply as quickly as I can.