One does not simply become a programmer.
The journey is long and hard. It's not for everyone. There are many prerequisites you would need in turn to become a proficient software developer. Most important of all is to have grit. No amount of talent can replace hard-headedness and raw willpower of getting to the goal you set for yourself. In the end, nothing else matters. Achieving your personal goals is what we all strive for.
However, you need to want it, you need to want to learn. Programming is a constant state of learning new technologies, practices, style guides and languages. Damn, I've been working as a software developer for two years, and every step of the way was a path of learning new things in order to finish my work! Hell, I'm currently in the process of learning MongoDB as it's a work requirement. Now you're wondering why I'm even telling you all this. It's simple. If you want to become a programmer, you need to be a nerd. Don't get me wrong here. What I view as a nerd does not match the stereotypical view of nerds in Hollywood. A nerd for me is a constant learner, someone who never stands still, always looking for new ways to improve upon himself/herself. Be a nerd! There is nothing wrong or embarrassing with being a nerd. I'm a nerd, and I'm freaking proud.
Now, when I've grabbed your attention...
I want to help you. I want to take you on a journey. Join me on the path to becoming a programmer. Of course, only if you have the grit needed to follow along. You need to want it.
I'll take that you are interested if you've read this far down the article. I'm glad you did.
Let's jump right into the belly of the beast. Here's a roadmap of what you need to reach your goal.
Intro to Programming
You need to pick one programming language to build your core understanding about programming in general. The core concepts of programming are pretty much universal for all programming languages. If you will be following my tutorials, I'll be using JavaScript, as I believe it's the most beginner friendly language out there. Additionally, JavaScript is the future, as many believe, all web applications that haven't been written in JavaScript will one day be written in JavaScript.
Algorithm Scripting
When you have understood the core concepts of programming and your language of choice it's time to put it to use. This part of your learning has less to do with the syntax of programming you will learn in the section above, and much, much more about logical thinking and problem-solving. A programming language is only a tool, it's still your brain that needs to be trained to solve problems. The brain is a muscle as any other, if you do not give it proper exercise, you will never prevail.
Start building stuff!
Start building immediately, it does not matter how little experience you have. Nothing compares to the actual creation of something productive. The experience one gains from building a concrete application with a set purpose is exponentially greater than only hacking away on some predefined examples and tutorials.
Learn about general software engineering
The language you write code in is only a small part of being a software developer. The big picture is, in all it's magnificent glory, massive. Too massive to even try to explain in one sitting. I even tried to explain this to a friend, long story short, after 2 hours of me talking like crazy, he couldn't wait to go home.
However, it's not that hard to partition into bite sized chunks.
- What are servers?
- What are clients?
- What's a database?
- What does the concept front end mean?
- What does the concept back end mean?
- How does one link the front-end to the back-end?
That's it!
Well not really. It's a rough estimate of what one would need to start down the path towards enlightenment, on the journey of learning how to write code.
That's more than enough for today.
Hope you liked my rough roadmap of what it takes to be a programmer. All of what I write are my own experiences, many of which are rough as I have had to fight my way through this journey. Being a self-taught developer has shown me the beauty of open-source and the spirit of helping others. Hence, why I teach people how to code. Hope you guys join me on this journey. I'll be writing stuff regularly, for all experience levels, from beginner to advanced.
Hope you guys and girls had as much fun reading this article as I had writing it!
Drop an upvote if you liked it, share if you believe it will be of help to someone.
Follow if you want to read more.
It means a lot to me.
Feel free to suggest interesting topics you would want to read about in the comments below.
Nice post! 👍 I started with FreeCodeCamp myself and now work as a dev.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congrats! I was already working as a dev when I stumbled upon freeCodeCamp. It was eye-opening to say the least. It has made me step up my programming game significantly.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I think the best motivation is working on cracking a particular problem in your code. And for that to happen, just start with coding.
Every journey starts with taking the first step. Do or do not, there is no try.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Definitely. Never be afraid to jump in headfirst.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Nice post bro, this is how you do it ;)
best wishes from crypto.ba
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you! Welcome to Steemit. E nek si se vala pridružio raji ovdje. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I'm currently in my 3rd year of studying applications development and I still feel like I know nothing.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dude, I'm working full time as a dev, and part-time as an educator, and from times to times, I still feel like I know nothing. It's perfectly normal to feel like that when you step outside your comfort zone. The only thing you need to do is to get used to constantly having to learn new things.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I know the feeling too. Came straight out of school, started working, and I felt like an idiot in the first month. The working world and school are totally different.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Good post @adnanrahic! Pozdrav iz Bg-a!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you @teofilex11! Drago mi je kad vidim raju iz naših krajeva. Pozdrav iz Sarajeva!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Great content man, keep it up! I want to read more from you
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you! I'll make sure to write more.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Very nice article @adnanrahic. Keep up the good work
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I started with assembly language 54 years ago, retired now. I agree with most of your points. An interest in details and problem solving are key. My best advice when you can't figure out what to do, divide the problem into two pieces. One will be simpler to understand, and easier to do.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Exactly! Damn, 54 years. I don't have to say anything more. I should be listening to you. You are my father's age. I'm really glad you liked the article. Hope to hear more about your stories about programming back in the day.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
My programming skills were completely self taught. I attended 2 years of college and dozen or so employer provided training. I learned the hard way that if you look over a program and have trouble figuring out what it does, then there are not enough comments.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Guess I'm going down your footsteps. I, as well, only went to college for 2 years, and am self-taught. Getting a job kind of was more important. But I must've gone through hundreds and hundreds of hours of online courses. I'm actually enrolled in three courses at the moment. Two of which I need for work. Education is never-ending for us programmers. That's why I tend to share my knowledge. Would you ever be interested in speaking at a meetup, about your life story and the way you became a programmer? I host a small study group in my town, and the guys and girls would love to hear something inspiring. Especially from someone of your calibre. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
At 73 I have Parkinsons and can't do as much as I would like. What city/timezone is your meeting and how did you envision my participation? How long would the talk last and what specifically would you/they want to hear? Programming techniques/career summary/messing around in memory of disk file structure/assembly language exploits are examples.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Awesome that you're already listing interesting topics! Any of those would be great. Whatever you feel most comfortable with, and what you believe newcomers to programming would benefit from hearing.
But of course, I also wouldn't want to be a nuisance to you, and your free time. The length of the talk is totally up to you, it does not at all need to be strenuous for you, 20-30 minutes is some rough outline we usually go by. My timezone is CEST which equals GMT+2, hope that's not too far away from yours. A simple Skype call or Hangouts call would more than suffice. I can organize a quiet enough classroom for everybody to hear you just fine.
Please send me a message through the Steemit chat so we can talk some more! My user name over there is also: adnanrahic
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
FINE! I'll start coding again!...but so tired...lol
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
A really educational post! Thanks for sharing!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Welcome! I'm glad you liked it.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
'A nerd for me is a constant learner, someone who never stands still, always looking for new ways to improve upon himself/herself. '
That is the very best definition of nerd that I've ever heard--Thanks for this informative post. I am interested in learning more---
Following
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Glad you enjoyed the read. Hope you're a nerd, and proud!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I've started on FreeCodeCamp just recently. Finished the first project before exams and the seemingly bottomless ability of my mind to distract itself...well...distracted me XS
I'm planning on restarting tonight. Gonna work on the JS lessons and make a sketch of the Portfolio project and how it'll be designed.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Awesome! Good for you. Pushing yourself will always result in progress. Feel free to shoot me a message if you get stuck. And most important of all, have fun. Happy coding. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks :)
I might try to teach myself how to use the steem API at some point. Got an idea that some people seem to like, about creating a program that allows us to see the time most user's in different timezones are most active (or most active time for different tags, too) and making it an API that can be used by the draft systems for Steemit to allow perfect scheduling according to when the most people are active on Steemit in your timezone/main tag.
What do you think ? For the moment I've just played with the idea a bit, talking about it in the comment section of 2-3 posts when something reminded me of it, but it's beginning to stick in my brain now XS
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
That actually sounds like a useful thing to create. I'd advise you to start out just building anything, and see where it takes you from there. There are only upsides to that approach, the worst outcome would be that you learn something new and awesome. And that is not to be taken for granted. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I will !
True, even if I can't make it work, I'll learn about programming for the block-chain !
Though I feel overwhelmed at what's fallen into my lap this summer... I'm supposed to write articles to present our local IGEM (international genetically engineered machines competition) team to the public, work on the Wiki for said competition, help my dad fill out the product information on his ecommerce store, learn web-development with FreeCodeCamp... Oh and work in a supermarket from 5 AM to 9 AM stocking the shelves every morning starting the 26th (bonus being it serves as sport, a way to get money, AND a way to get me up and about early XD)
I just feel like there's So Much to do, and my brain keeps trying to get me to read webcomics, watch a movie or play a game. (my brain's weird... it tries to avoid work... by making me want to play SHENZEN I/O, a problem-solving programming game... I think it's short-circuited XS)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I can relate. Was just like that a couple of years ago. Now, I clock in close to 12 hours of productive work every day. I have a full-time job, teach programming, write articles and tutorials, watch online courses about emerging programming technologies, host events for local programming communities, etc...
And still, I somehow manage to have a social life. Anything is possible, you just have to set your mind to it. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Programmers are pretty cool people too. There's always someone who is happy to help online.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Exactly! Makes me proud. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit