public

Learn to Code

There is a lot of interest in learning to code. In this article I discuss what coding is like, what makes a good software engineer, and how to learn to code.

4 months ago

Latest Post Closing the Opportunity Divide by Edwin Marcial public

Coding is not just math -- its art and organization.

There is a lot of interest in learning to code. It is one of the single most in demand skills in the world, and as a result, there are many high paying jobs available. Whether you are someone looking for a career change, a student considering a major, or someone just interested in a new hobby you are probably wondering what software development is like, would you like it or be good at it, and how do you go about learning to code. In this article, I will try to answer some of those questions.

I think too often people think software development is very complex, and requires a good command of high level math. Software development is not rocket science, and while being good at math can be a good indicator of  success, software development really is not just math. In fact, software  development is a creative endeavor that is as much art as it is science.  In my view, software development is about logically breaking down a  problem into its smaller components that can be reused and connected  together. Sure, there are some very complex computer science problems and applications and systems.  Many however are not as complicated as most  people think. Many of the business applications today are pretty straight forward - they are about taking  in data, storing it in a database, and moving it out of one system and  into another.

What makes a good software developer

Some of the key attributes that I think make up a  successful software developer include:

The ability to:

The tools and technologies around software development are contently evolving, so it also helps to have a curiosity and desire to continuously learn.

By the way “learning to code” and being an effective software  engineer are often considered two different things. For the purposes of  this article, I will use several of these terms  interchangeably. When I say ‘learning to code’, I am not just talking  about learning the basics of a particular computer language syntax. I am  talking about getting the necessary skill set to be an effective  entry-level software developer, including basic computer science theory  and fundamentals.

Learning to Code Today

Thanks to the Internet, YouTube, online training platforms, and coding boot camps, there are a variety of ways to learn skills such as  software development easily and cost effectively. Students can learn on online platforms such as Udemy, Coursera, and Udacity that offer excellent  courses in everything from web development to advanced data science and  machine learning. In addition, major universities such as MIT and  Stanford have put many of their courses online for free. There are other  free learning platforms such as Code Academy and Khan Academy. YouTube  also has excellent content and much of it is free. In fact, many of the  these courses are either free or offered at a nominal cost when compared  to traditional college credit courses. For example, a while back I took a  13-hour course on NodeJS from Udemy that cost me $28 dollars — this same  course would have cost hundreds of dollars at a university. Over the  past few years, there has been an explosion in coding bootcamps. These bootcamps such as Flat Iron School, General Assembly, Thinkful and many  others offer a mix of typically three-month, immersive courses in  learning to code. There are so many ways to learn software development  skills today that the biggest challenge may be choosing the right venue  to do so.

If someone wants to learn how to code, I suggest that they first find out if they really have a true interest and aptitude for software  development. Start with a free online-only course such as those  available on Code Academy or Khan Academy. Here is a good starting point from Kahn Academy. These online courses are  free, and you can do them on your own time. MIT OpenCourseWare has some  free classes as well. Although it maybe not be the place for beginners, it  is a good place to take some classes on computer science theories such as algorithms and data structures — something that is often lacking in other venues.

I suggest those interested in learning software development talk to  someone who is in the industry for guidance and mentoring. If after  talking to someone and doing those basic online courses, you are still  interested, then consider taking a paid course from Udemy, Coursera,  Udacity, or one of the similar platforms. You can supplement your  learning with YouTube videos, and by reading various software  development blogs as well. This link provides an excellent overview of many of the options available:

As I mentioned, I’ve personally taken some Udemy courses. They are excellent and are a great value at around $20-$30 for about 10-15 hours of lessons. Thinkful is another great option. It’s a hybrid between an online course and a  full immersion bootcamp. Thinkful assigns each student a mentor to work  with each week which is a big plus. If you get through a course or two,  you will be in a great position to know if you like the work and have an  aptitude for it. If you want to continuing learning software  development, you have a few more options like taking additional online  courses to expand your skills and practice, or you can consider  investing in a three-month-or-longer bootcamp.

Students can also look to join coding ‘meet-ups’ or find similar  students they can work and learn with as a team. While you are learning,  I suggest you find a core project that you are passionate about and  build it as you learn. For example, you can build a website or an app  that interests you and continue to expand it as you develop new skills.  Having a project that you are passionate about will keep you working  toward a goal, and will help keep you motivated and engaged to continue  to expand your skills.

There is no excuse

Lets stop and think about this for a second here. With all the talk from politicians about how college should be free, you have FREE courses from some of the most renowned universities in the world (MIT, Standford, etc). Not to mention all the other free or low cost websites and services listed above. You can learn one of the most, if not the most valuable, most in demand, highest paying skill in the world. All for free.  If someone wants to learn to code, there is NO excuse for not being able to do so.

Which language should I learn

There are many different coding languages, each with its one syntax, history and purpose. You can get a sense of many of the top programming languages in this article. This website ranks the most popular coding languages based on various criteria such as the number of trained engineers. This one also ranks language popularity but its just based on Google searches.

In my view beginners should consider two languages when learning to code: Javascript and Python.

Javascript - This is the language of the Web. Every web browser can run it, and just about every website has Javascript running in it. It is a very diverse and powerful language. If you like to build things that you can see, such as websites this is a good choice. Over the past 5-10 years or so, thanks to the creation of NodeJS, Javascript has also become a language for back end or server side development. Javascript is a great choice if you want to start learning by building websites, and then have the option to also build full systems including server side code.

Python - Python is considered one of the easiest languages to learn because it is most similar to the English language. It has also become the defacto introductory language of many Universities. Python is also becoming one of the standard languages of machine learning and data science.

If you think you want to focus more on front end and visual code such as website, I would start with Javascript. If you are attracted to data science and/or think machine learning might be your jam, consider starting with Python.

What age should children learn to code

I often get asked "what age is best to get children interested in  coding?" I do not think it’s important to get children directly involved  in coding at a young age. I would say about 11 years old and beyond is a good time to start getting exposed. As I have stated, it only takes a couple of years to build  proficiency so getting them started in their teens is plenty of time. In  addition, children today have much more familiarity and affinity for  computers and tech since they have grown up with it. There are some  games such as Minecraft that teach children some of the concepts of  coding. I think taking a softer approach like that can be better for a  start for younger students.

Self-discipline matters; Plan to invest at least one year of your time

No matter which path you choose to train yourself in coding or software development, you will need self-discipline. You likely will not  have the peer support that you have at a traditional college, where you  mingle with other students each day. You won’t have fellow students or  instructors telling you when you need to be in class or when an  assignment is due. Procrastination is an easy trap when you’re studying  on your own.

To stay on track, work on a project you feel passionate about. Find  a mentor to help you when you are stuck. Join a meetup or work with  someone else as a team so there is someone else to hold you  accountable. You can join coding meet-ups to connect with similar  students, sharing practical tips and motivating each other to stick with  it. Self-discipline and persistence will help you succeed. Put in the  effort, and don’t give up! The rewards of a high-paying and gratifying  career are absolutely worth it.

While I do not think you need four years of college to learn the  skills necessary to become a successful software engineer, you wont  learn the skills you need to be a professional in just a few months  either. Plan to dedicate yourself for a full year to a year and a half.

Photo by Steve Johnson on Unsplash

Edwin Marcial

Published 4 months ago

Comments?

Leave us your opinion.