Curiosity is one of the most important personality traits that you can have in the tech industry. Before you write your first line of code, check yourself mentally. Do you want to know how the world works? How technology works? Do you like solving puzzles and figuring things out? Do you enjoy having “A-ha!” moments?

In this post I’m going to talk about personality traits and tips that can help you succeed in the world of programming.

Curiosity

When I started learning to code I didn’t care about programming, and I didn’t care how anything worked. I was just trying to build a product so I could start a business. This is the worst mindset a programmer could have. If you want to learn how to code, you have to be curious. In order to code you have to learn how computers work. You need to understand how all of the pieces fit together and how they interact to build an application. Successful programmers WANT to learn how technology works deeply. Slow down, enjoy the learning process and be curious.

You’ll have more fun and learn faster.

Enjoy Problem Solving

The people who do the best in programming are the kind of people that take stuff apart just to look inside. They get a thrill out of trying to put things together. They like pushing themselves mentally, and they enjoy mentally stimulating challenges. Math, engineering, science… It’s all fun just because it’s challenging. (In addition to wanting to know how the world works). Add everything together and you get a really fun career. Oh, and we get to make the world a better place by providing solutions via technology, which is just icing on the cake.

Learn Each Thing By Itself

There are a lot of moving parts in the world of technology. You’re always picking up new tools, and you have to learn how to use them. It’s best to learn how to use that tool in isolation before trying to integrate it into your project. Before using MySQL in your app, try learning MySQL all by itself, that way you know how the tool works on its own. Anything new or unfamiliar you come across will be much easier to learn without all the extra moving pieces.

Patience

It’s hard to stop in the middle of a project and go research something else seemingly unrelated. A lot of times it’s better to just stop and do the research you need to do. I had a problem with my live website, and I needed to fix something in the Apache web server. I didn’t know anything about Apache, so I spent three days trying to copy & paste solutions and nothing worked. Finally I gave in and decided to learn all I could about how Apache worked. Within thirty minutes I had solved my problem. I only solved the problem because I was willing to read the documentation and learn about Apache. You have to be willing to drop what you’re doing and learn how to use stuff (which is why Curios and patient programmers are usually more successful.)

I’ve had this happen countless times. You’ll have to stop and learn about environment variables, how your $PATH works, what SYMlinks are, User permissions, and a bunch of other stuff that just pop up out of nowhere. If you don’t stop and take a couple hours or days to learn how to use them, they will drive you insane, and something always seems to pop up when it’s inconvenient. Just take a deep breath, stop, and do the research.

It’s also really hard to code when you’re angry. You shouldn’t become angry when coding because the computer tells you what the problem is. Sometimes it’s hard to decipher the message, but that comes with experience. You have to be able to stay calm under pressure, and if you ever get frustrated then it’s time to take a break. Be willing to walk away from a problem and come back to it with a fresh mind.

Go Deep first… Then Wide

It’s tempting to jump around from language to language, but in the beginning it’s a bad idea. You don’t want to keep re-learning the same surface level stuff like for loops, arrays, and variable assignment. Instead, you want to go really deep into one language/stack. If you’re really good at one language, you’ll code much faster, have higher quality code, build products faster, have more confidence, and get paid a lot more. (Besides, it’s not that hard to switch languages anyway)

If you go deep into a language first, you’ll have a much better appreciation for differences when you do start experimenting with other languages. The surface level stuff is all very similar, so jumping around doesn’t do you much good until you’ve gone deep. That said, it IS important to experiment and be flexible! Once you’ve gotten very comfortable in a language go explore!

Programming Challenges


You have to apply what you learn to real projects, no matter how small. To a beginner, programming challenges are everything. You start out with small and simple projects like “reversing a string” and “saving a users favorite food to a database”, and gradually increase the difficulty. every challenge will teach you something important, and the more you do the better you’ll get. Big programs like Facebook or YouTube are just a bunch of little programs working together. By starting with these small programs you’re learning the fundamentals to build bigger programs. it doesn’t really matter what kind of exercises you do, but variety is good. We have a growing list of exercises for you to solve here.

Want More Tutorials?

Subscribe to our NewsLetter to get our latest Tutorials, Courses, product & tool reviews, and more! We don't email very often. When we do, it'll be good!

Read the Error… And the Manual

I’ve seen so many beginners copy and paste an error message into Stack Overflow or Reddit, and ask someone what the problem is, when the error message tells you exactly what the problem is. You can’t expect answers or information to just pop out at you. You have to dig. You have to get very comfortable reading errors, reading the manual and doing your own research to be a great programmer. Read and understand error messages.

Focus on Improvement

Code will not make itself clean. Once you start being able to complete your projects, make a conscious effort to keep your code clean, and refactor things as they need to be refactored. It takes a lot more planning, and a lot more thought, but you should always be trying to improve your code quality, and always be refactoring your codebase. You don’t have to get it perfect, but as long as you consistently try to follow best practices and improve, you’ll make progress.

Writing code that computers understand is easy, but writing code that humans understand is hard. The cleaner your code, the easier it is for humans to understand it. Do your research and apply what you learn.

Build Cool Stuff!!!

Completing a “Todo list tutorial” isn’t coding; It’s copying. It only counts when it’s your own project. Reading and following along with tutorials can help you learn new concepts and improve code quality, but you have to apply what you learn to your own projects in order to gain any benefit. I try to always finish every project that I start so I can put it in my portfolio. It’s fun to look back on the programs you created and see the progress you’ve made. So build your own cool stuff!

Conclusion:

The main takeaways to learn to code, or become a better programmer are to genuinely be curious about how computers work, to want to understand how all the pieces work together, and to build cool stuff. If you put those elements together, then you’ll succeed as a programmer. If you want to get better, then make a genuine effort. Read articles, buy books, and try to apply what you learn to your code.

Reading Makes You Smarter!

Check out our recommended reading! We've chosen a variety of books covering a lot of different topics from Security, Functional programming, clean code, design, Computer Networking and more.

Learn to Code! Get Free Tutorials & Courses Straight to Your inbox!