If you have no programming experience at all, which is quite common and nothing to be ashamed of, it may seem daunting to start learning how to create websites professionally. When I first started writing code twenty years ago, I bought a big book on the C programming language and tried to dig into it -- I wasn’t even a teenager at the time. Years later, I still hadn't gotten past the section on arrays. And don’t get me started on x86 assembler! The material was just too dense. I had to go to college before I was able to understand the basics.
Good news for you, though! You don’t have to go to college to be a programmer. You just need the right attitude, some tenacity, and a bit of time.
Secrets to Success
I’m going to tell you some secrets, and I wish someone told me these when I first started:
- Start small so you don’t get overwhelmed -- pick one project and work on it until it’s good enough and you’re ready to move on and never think about that one project again. Make the project small enough so that you can finish it in a couple hours, a day, or a few weekends at most. You want to actually get to a “done” so you can feel good about what you’ve accomplished.
- Pace yourself -- Work at it a little bit every day to leverage the compounding effects of time. You may find that it feels slow-going, and that you want to jump right into that hyper-reality VR mobile app. The trick here, though, is that slow-going is better than no-going -- you try to do too much, and you’ll very likely stop moving entirely.
- Just write code -- Really! Just write code. Make a box on the page. Code written. Make it wiggle, more code written. Make it blue, then red, then add text. Keep adding to it, keep doing things with it until you get bored, then make a new box. Or a circle. Or a sidebar. Or a WordPress theme that contains a few boxes. Or a mobile app that says “purple”. Or a Python app that fires lasers across the screen. Or a browser extension that highlights every vowel on the page -- there’s lots of vowels!
- Share, Re-use, and Socialize. Other developers and their projects and their ideas are just as important as your own. Learning from the experience of others while avoiding the “reinvent-the-wheel” situation will help catapult you into success. Take criticism with a grain of salt and be grateful for critique -- and know the difference! Talking with your fellow devs lets you avoid making mistakes that they’ve already made for you, and you’ll also learn some neat tricks along the way. Definitely worth it.
- People -- and not just other developers -- are a super important part of the equation. I used to hate people (I know, harsh…). But guess who pays the bills? Other people do. They pay you to bring their ideas to life. And why are their ideas worth paying you for? Because they solve real problems for other other people. People are just as important to software development as software is, so be interested in people and software -- trust me, it helps :)
What is Your Definition of Success?
It’s easy to get frustrated. I get frustrated all the time, and scared too! Sad, sometimes, because I’m not done yet, and angry other times because I’m not done yet. All sorts of emotions come up while you’re writing code, and it’s really easy to lose sight of the end goal. So “begin with the end in mind” as they say in the book, “7 Habits of Highly Effective People”.
For me, success with code looks like fighting off the killer robots at some point in the future. Maybe for you, success looks like making a pretty website for a local business you love and seeing them grow into a successful online store. Perhaps success for you is to have made a video game for your little brother which he plays incessantly and tells all his friends about. Heck, maybe you’ll feel successful once you make a killer robot (rawr!) -- it doesn't matter! Whatever your motivation is, it can be uniquely yours.
What does matter is that you have a motivation bigger than just a paycheck. Software development is hard, and if it's just the money you're after then you may very quickly lose interest. The good news, however, is that programming is a creative act where you express yourself while also gaining a bit more financial freedom. Remember why you started down this path, and hold onto that. Visualize it, feel it coming, know you’ll get there -- it’s just a matter of time.
Whatever your reason, I'd suggest writing it down or making a mental note of it. When things get hard (and they will, and that's okay!), you'll want to fall back on this and remember why you're in-it-to-win-it in the first place.
Learning is a Constant
When you're learning to program, there are a vast number of resources at your fingertips. I’ve heard this called “the bottomless black hole by the side of your desk” -- you finish one article, learn one new technology, and immediately there’s another to learn or read. This may feel overwhelming at first, but I promise that you’ll get used to it -- it’s really not that bad! Kinda fun, actually. It never gets boring :)
Reading tutorials, articles, blog posts, documentation, and other sources of information is the process through which you develop the skills required to be a developer. I know from experience that it does not have to feel tedious nor daunting. Be that as it may, the information you need is all in the documentation, and you will need to read it. Read the Friendly Manual (RTFM), as they say.
One more point (and this is a doozy which I hope brings you great joy) -- speed reading is really a thing. Skim the headlines, skim the text, try to silence your inner audio and just pull out the keywords. Through practice, you will develop ways to absorb knowledge faster from the articles. Don’t think you have to get it all on the first pass, either! Just get the jist of it, pull out the important parts, and move on.
Where to go next?
There are plenty of resources out there which you can check out. Here are a couple of my favorites:
- Mozilla Developer Network (https://developer.mozilla.org) (Free!) MDN has tutorials, like W3schools and FreeCodeCamp, but where MDN shines is in the reference material. Mozilla is one of the O.G.s of the internet, and to this day when I need to look up some browser specifications or some obscure Document Object Model API, I turn to MDN and look it up. Nobody can keep it all in their heads, plus new stuff keeps coming out. MDN is a great resource to have on hand.
These Related Blog Posts:
- Increase Your Technical Literacy (coming soon)
- Character Traits for Programming (coming soon)
- A Quick, Brief, and Basic Web Development How-To (coming soon)
While there is certainly quite a bit of information to absorb, it can be a fun experience if you approach it with curiosity. Try not to take on too much all at once, and remember to celebrate your accomplishments as they come. Talk with other developers, check out the links above, keep learning, and enjoy the ride :)
A career in programming is a journey with many destinations along the way. Frame it as an exploration, hold onto your sense of curiosity, and enjoy each and every discovery along the way. experience each one with all its ups and downs, revel in your disasters as well as your accomplishments, and embrace each opportunity to try again. Be interested in programming -- in the challenges as well as the creations -- and don’t lose that interest. It’s hard to lose interest in something you’re actually interested in!