Tuesday, July 16, 2013

Programming and Fixed Mindsets

If I've learned anything from my first five years of professional experience in the software industry, it's that people aren't magically born with some innate ability to write good code. It's possible that due to certain circumstances in an individual's life that he/she is more likely to become a software developer than someone else who grows up in different circumstances, but there are very few true "geniuses" in our industry - people who are supremely gifted programmers. For the most part, programming skill in an individual directly correlates to how much time that person spends actually writing code. Unfortunately, some developers don't realize this - they assume that people who are better at programming than they are are simply smarter, and they essentially give up on trying to improve and accept their role as a poor to mediocre developer that is just there to collect a paycheck. This is the difference between a fixed mindset and a growth mindset.



Michael Graham Richard has an about the difference between a fixed mindset and growth mindset, and I believe this article applies very well to software development. If I could give one piece of advice to myself five years ago, or to any prospective software developer almost done with college, is that the only thing separating you and the developers that work at the Googles and Microsofts of the world is one things: practice. The only thing they've done different from you is they've programmed a lot MORE THAN YOU. Realizing that is one of the first steps in obtaining a growth mindset. From the article:




People who hold the GROWTH MINDSET believe that intelligence can be developed, that the brain is like a muscle that can be trained. This leads to the desire to improve.

What can you do to train yourself in programming? Simple - do a lot of it. If a runner wants to get better at running, he runs more. If a guitar player wants to get better, he plays guitar more. The same thing is true for programming - if you put the time in, you will become better.



What are some ways to practice programming? Thankfully for us, there's a ton:



* Contribute to an open source project on a site like Github. This is the best way to get real software experience while in college (other than internships, of course). It's also fun to work on something other than whatever you do at work, if you're a working professional.

* Create your own project and upload it to a site like Github. Think of something you need that hasn't been created yet, or something that you're passionate about, and go for it.

* Work on .

* Sign up for an account on and work on some tracks.

* Work on some problems on .

* Do some suggestions from Steve Yegge .

* Sign up for free classes on MIT Opencourseware



Practicing programming is the best way to close the gap between yourself and the developers that work at places like Google.
Full Post

No comments:

Post a Comment