Any contemporary startup worth its salt knows that without an app or internet-presence of some sort, the company is destined to fail. Maybe you have an idea for the next Angry Birds, or maybe you want to capitalize on an up and coming niche market through an innovative app. You may be thinking to leave the work to the professional software developers, but if you didn’t already know, they are far from cheap. For a startup, a self-made app is by far the cheapest route. For this reason, and countless others, programming is joining many people’s list of skills to learn. But how and where does one get started?

“Programming” in and of itself is its own skill, whose principles are then applied to specific languages that you may have heard of, such as Java, C++, or Python. Much like humans learn to make sounds as infants before they can grammatically learn the syntax of a language, programming can be best learned if thought of in the same way. Programming is the skill, the language is the tool. You’ll have to pick one language to begin applying concepts you initially learn, but once these core principles of programming are learned, it becomes easy to pick up any new language.

-What?-

So what language is right for you? Languages like Java and C++ are not going anywhere anytime soon. Nearly all of Android apps are programmed in Java, and C++ is considerably the most popular in video game and software development. Python was engineered with syntax simplicity in mind; this makes it ideal for the young or inexperienced programmer. Apple typically has its own languages, like Swift, that are necessary if you want to enter the Mac market. One language may be more popular or have benefits for a specific industry’s applications over another, so some research into the many different languages that exist would be a great foundation to start on.

Once you have decided on a language you intend to learn, you can begin to learn the basics of computer programming. The first thing you may learn is that computers are not smart. Programming is an extremely detail-oriented skill, where capitalization and punctuation can mean the difference between a flawless app or a fatal error. Websites like StackOverFlow.com are ideal if you run into problems you can’t solve on your own. There, it is possible to share what trouble you are having with a global community of programmers ready to help. It’s important not to use sites like these as a crutch, for it’s better to learn how not to do something yourself. Make mistakes and learn from them.

-Where to learn?-

An internet search will provide you with thousands of websites offering lessons in code, but which ones are the best? The list following the article is a collection of some of the most popular resources online for programming education.

In addition to websites, countless books have been published for every language imaginable, and they always begin with the most simplistic of programs. Series of books by a single publisher will eventually work their way to full-stack software development- that means developing a usable software from beginning to end. Some books are even written by the creators of the language themselves- information straight from the source!

Having a physical book with printed examples makes for a great reference material when encountering problems. These books can be found in any library, bookstore, or book provider. Outside the world of the printed page, college lectures from many esteemed universities are available on YouTube, completely free to the public. These and other dedicated channels available online may be the best regarding ease of understanding the concepts.

Understanding the material is definitely a necessity, but it's only half the battle - at most. The best way to begin developing programs of your own is with sheer elbow grease and time. Imagine how long it took for you to speak and articulate ideas coherently and logically, and now you have to get a computer to do the same! Your programming capabilities will increase proportionately to the time you put in. It will not take a lifetime, but you won’t be making Angry Birds in a day either. Perseverance is the key.

If you’re initially put off by computer-geek jargon and stories of teenagers and college dropouts-turned-millionaires, don’t be. It is never too late to pick up a new skill, especially one that can potentially net you a career’s worth of profit. You may pursue it as a hobby, or just to develop software for your own personal use. An old programming adage goes: “Weeks of programming can save you hours of planning.” It truly is a revolutionary skill to have at a revolutionary time in human history.

Programming Tutorial Sites….at a glance

https://www.khanacademy.org/: Videos supplemented with great explanations & examples

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/: MIT’s complete Computer Science program accompanied with PDF lecture notes & homework. Complete all the coursework provided and you could unofficially have a degree from MIT!

https://www.codewars.com/: Courses spanning the hottest Object-Oriented Programming languages, developed by collegiate professors.

https://www.codecademy.com/: One of the most popular, and most effective, thanks to its interactive examples that increase in difficulty as you progress. Courses are offered across many languages including web-developing languages like HTML and CSS.

About the Author

Ryan Kole is a Computer Science major at UNLV’s Howard Hughes College of Engineering. He is a member of UNLV’s Society of Automotive Engineers racing team and hopes to one day develop software used in either Formula 1 or consumer-market cars. Ryan has a deep interest in finance and stock markets and hopes to blend the two into his career through his own financial software development firm.

Disclaimer: The views and opinions expressed in this article are those of the author and do not necessarily reflect the official policy or position of RVF or UNLV. In addition, thoughts and opinions are subject to change and this article is intended to provide an opinion of the author at the time of writing this article. All data and information is for informational purposes only.