There are a few of ways to become a programmer. But what you really need to think about is are you looking to become a hobbyist? Or do you really want to make a career out of it? To make a career in programming you can
- Get a 4-year CS degree
- Self teach (online or other resources)
- Or attend a coding bootcamp
Not trying to be melodramatic or cliche, but I really wish all the amazing learn-to-code resources that exist today existed back when I started on my code learning journey. Back then it was all forums. It was all hunt, fail, search, fail, search succeed. And it was rough. *sigh*
In addition to the great resources already mentioned, coding bootcamps are getting a lot of buzz these days. But you have to stop and think that there is a reason why they are so popular and people are actually kickstarting their development careers from them.
Bootcamps offer people a way to jumpstart a lagging career or make a step into a new one. Programming bootcamps are teaching current real world and career-like solutions by taking a flipped classroom approach. Less lecture, more project-based learning.
Companies are starting to recognize that those who apply themselves in a bootcamp are able to learn quickly and adapt to new technologies and projects easily. Employers are looking for someone to get the job done with the skill set that matches the technologies that they practice. Many employers don’t care if employees have acquired that skill set in a garage when they were 12 years old, at MIT, or at a coding bootcamp.
But, bootcamps aren’t for everyone, you really have to apply yourself and consume content quickly. But if those requirements are met, bootcamp attendees really can excel! I know because at DevMountain we have had so many success stories just like the afore mentioned where a student truly applies themselves, lands an amazing job, or starts a hot tech company and truly change their life. Plus it happens in a tenth of the time of a 4-year degree would take and at a fraction of the cost 😉
Bootcamps offer a more personalized mentoring. Being able to see delegates, resonate with students emotionally, pick up on subtle nuances of communication and respond appropriately is the very essence of education. I believe passionately that training and coaching are not about getting something from one head to another, but are an intimate dance that transforms both parties. We are not computers and if we treat people as such learning is stifled.
Anyway, my two cents: learning on your own is extremely difficult. Reason being, even with all the resources you and I have, you don’t know what you don’t know. The path to mastery is a long and difficult one, with many side roads, detours, and roadblocks. If the skill you are trying to master is difficult, then that much more difficult of a journey. No automated coding site is going to be able to navigate you through all the nuances. They work more like this:
I personally believe that mentored learning in an immersive environment is the best use of your time. You can definitely do it on your own. I did. It just took me a lot longer than I have personally seen now a days from bootcamp attendees. I can tell you first-hand, that someone learning from an experienced mentor accelerates the process. I’ve seen it done time and time again.
Best some Ways to Learn Programming
I can remember back when I was young how alien a couple of lines of code that were published in a kid’s magazine looked to me. Some twenty years later (or should I better say a year ago), I decided that I should teach myself how to create some small and usable programs. Sad to say, I lost interest shortly after.
Well, this year I tried again. This time I installed a different programming language, downloaded some tutorials from Youtube and I also borrowed some books on programming from my local library. Only time will tell if I will be successful in this objective but I am sure I am making good progress. More importantly I’ve learned a lot about the best way to learn programming and have found some great learning resources I’d like to share with you.
Leaning to program: a better way
There is another, better way to learn programming. Do it it two steps:
First I suggest to you to start with programming languages which enable you to learn the basics about the language in a short amount of time. They should also enable you to produce usable results reasonably quickly before you will lose interest which can happen especially in cases where the users are children. It doesn’t matter that your first language is not powerful or not popular or fashionable. What you want initially is quick results to keep you interested.
Second, when you will get more experience with simple languages you can at any time jump to more sophisticated programme languages if you want or need to.
Easy to learn languages
The first entries I want to mention are really simple. In fact they are not really programming languages at all. They are online games in which you have to control a robot and help it light up all the blue tiles by giving it correct set of commands. All you need is an internet connection, a browser, a mouse and a couple of minutes of your time.
is a puzzle game about putting robots in their proper place. With the help of the conveyor-belts, ‘pullers’ and ‘pushers’ you have to build a machine. If you liked the game, you can also try Tile Factory
Bug Brain (biologic[DOT]com[DOT]au/bugbrain/) is a game where you build brains to run a bug. You start in the lab where you experiment with the neurons and nodes that make up a brain. After you successfully finish the lab levels, you move out into the field to build a brain for a Lady Bug to help it feed and survive. Bug Brain was tested on Windows XP and it works fine.
Hello Code (societygames[DOT]com/codealong/) teaches the basics of code (ActionScript 3.0) and the fundamentals of good programming through interactive missions, which can be solved by codes. Just try it out. As the author said:”It is free! If you’re not satisfied, money back guaranteed.”
are online games which teach a user some fundamental programming lessons. For example, this games teach you that there are more than one solutions to the problem and that if you failed to finish the level, you have to go back to the drawing board and find where you did make a mistake. This is similar to programming where you have to find errors in your program. If you want to try them out, you should know that first 21 levels of both games are free, while additional levels and making your own levels are not.
is a software, which allows 5- to 8- years old children to learn sequential programming by allowing them to make Merlin or any of the other Microsoft Agent characters perform actions, move, speak, listen for and make sounds in a predetermined manner. It is available for Windows only.
your goal is to develop a competent reflexes, plus offensive and defensive strategies for your six legged fighting machines code named Cybugs to ensure the survival of your Cybug or your team of Cybugs in a battle simulation. The software is available for Windows only (You need to have Java 5 version or higher installed to the software).
is a online game, where you must develop a program for a small robot to help it collect all the stars on the screen using specialized programming language (You can play full version if you have Silverlight installed. If you don’t have it installed, you can use limited version instead).
is not just a programming language or just a video game. Actually, it is both. Children can build and run all sorts of computer programs inside of it’s animated world. While learning how to program they will face challenging puzzles, express their creativity and learn new ways to solve problems. And what is probably the most important thing of all: they will have loads of fun. Toontalk is available for Windows ME, Windows 2000, Windows XP, Vista and Windows 7.
. As an Alchemical Engineer, you must build machines out of mechanical arms and magical glyphs that transform and combine atoms in order to create the compounds required so you can pass the level. If you don’t want to play the game, but would want to see how it looks like or if you do not know how to start, look at the tutorial for first two levels . But beware, this game is certainly not easy to play. If you are among those who finished this game,
– this is an expansion for The Codex of Alchemical Engineering with fifteen new levels. And these levels are, according to the author, much harder than those from The Codex …
which is an educational programming language with an IDE, you can easily create an animation for telling a story, play an interactive game, or a video which you can share it on the web. It was designed to be a student’s first exposure to object-oriented programming. Alice is available for Windows (XP, Vista, Windows 7), Linux and Mac.
is a free implementation of a computing environment called Logo and provides support for exploring diverse disciplines, including mathematics, engineering, art, music, and robotics for children in elementary schools. It has a simple GUI and runs fine even on 10-years old computers. FMSLogo is available only for Windows.
is a multi-agent programmable modeling environment which is used by students, teachers and researchers worldwide. It comes with a large library of sample models which cover a large part of natural and social science (Art, biology, Chemistry & Physics, Computer ans Earth Science, Games, mathematics, Network, Social Science and System Dynamics). NetLogo runs on Windows (2000, Windows XP, Vista, Windows 7), Linux and Mac (You need to have at least Java 5 installed to run this software. Java 6 or later is strongly recommended by authors, though.).
can help you learn how to make software using Ruby programming language. The solution that Hackety Hack pursues is by teaching with a more traditional programming language, but adding libraries that make it easy to do complicated tasks in one line. It is available for both Windows and Linux. You can
can help user learn how to make games using Ruby programming language. What makes it easy is the fact that the user can see, run the code and see what its output looks like all at the same time. The programm can do everything that previously mentioned Hackety Hack can (In fact, you can run many of the same code samples from Hackety Hack in KidsRuby.). To access help file, you don’t have to have a internet connection, since the file is built into the programm itself. KidsRuby is available for Windows and Mac.
is a learning environment which enables the user to play, explore, and learn in diverse areas such are: computer programming, computer and internet literacy, math and science, systematic and computational thinking and also art, music, and creative thinking. Features like syntax highlighting, code completion, and code templates make programming friendlier. Kojo is available for Windows, Linux and Mac (You need to have Java 6 installed on your machine to be able to run Kojo.).
is an educational programming language in which user by snapping together visual programming blocks controls images, music and sound. While it is intended especially for 6- to 16-year-olds, who can create projects with their parents or older siblings, people of all ages actually use it. Scratch is available for Windows (2000, XP, Vista, Windows 7), Linux and Mac.
to make their own models, stories and games, which keeps them engaged because it’s a lot of fun. It is also a highly effective way to teach math, science, and language arts. Etoys is available for Windows, Linux and Mac.
is a framework for making 2D games in the Lua programming language. If you want to make a game, you need to create a folder and open up your favorite code editor (it must have Lua support built in). Create a new file in the folder you just created, and name it main.lua. Put the following code in the file, and save it. All that is left for you to do is to drag the folder to love.exe. Löve is available for Windows, Linux and Mac.
will allow you to create and edit a platformer, physics puzzle, 3D space mission and classic shooter games. If you want to save the games you made and share them with others, you will have to register (only a username, password and valid e-mail address are needed.)
allows you to create simply and quickly your own video games. Creation process is elaborated through the editor, and no previous knowledge is needed in order to use it. Game Develop is available for both Windows and Linux.
is a programming language for people who want to create images, animations, and interactions. The language builds on the Java programming language, but uses a simplified syntax and graphics programming model. It is available for Windows, Linux and Mac.
is as a full integrated development environment for new programmers to play with high level game programming concepts without needing to know about C++ or OpenGL. It uses a group of custom utilities for creating graphics and sound, and a programming language called Game Kit Language (GKL) for writing code. Because GKL is event-driven, object-oriented, and state-based, it is extremely easy to use once you learn it, and many games can be written in only a page or two of code. GameKit is available for all versions of Windows ranging from Windows 95 to Windows XP.
you can make your own point-and-click adventure game (For other types of games you will have to use some other game making software.). It consists from an editor to create games and a run-time engine to run them. The help file and tutorial for beginners are both included in the package. Adventure Game Studio is available for Windows (2000, XP and Vista), Linux and Mac (You need to have the .NET Framework 2.0 (or later) installed in order to run it.).
you will be able to make a 2D role playing games. It comes with its own simple coding language and also with advanced features such as objects and threading for those with a little programming experience. RPGToolkit is available for Windows XP, Vista and Windows 7.
allows you to easily implement events in the form of a flowchart with simple point and click method. When you will develop a better programming skills, you will be able to make games with text scripting, which is harder than graphical scripting, but allows you to script some things faster. Beginner’s, platformer and scripting tutorial are all included in the package. 001 Game Creator is available for Windows XP, Vista and Windows 7.
is a DirectX 9 game creator for Windows, designed for making 2D games. Indie game designers and hobbyists can use it to enter the world of game creation. Artists can produce games without having to use any programming. Teachers and students can use Construct to teach the principles of logic in a fun way. Developers can use it to rapidly create mockups and prototypes — or simply as a faster alternative to coding. With it’s successor,
, you can also make all sort of games which can run on all modern desktops, mobiles and tablets (Construct Classic is free while Construct 2 Free version offers limited sounds, events and layers). Both software are available for Windows XP, Vista and Windows 7.
, children can make many different types of games, such as racing, strategy, RPGs, adventure, platform, puzzle, 1st person shooters, and others. It is different that some other projects because it avoids typing code by having users construct programs using visual elements via a game controller and also because programs are executed in a 3D simulation environment, rather a bitmapped or 2D display. Kodu is available for Windows XP, Vista and Windows 7 (To run Kodu, you need a graphics card that supports DirectX 9.0c and Shader Model 2.0 or higher, .NET Framework 3.5 or higher and XNA Framework 3.1 Redistributable).
is a simple educational programming environment that will familiarize users with the basics of computer science by letting them program their own robot. In addition to an introduction to popular programming techniques, they will also gain insight into areas such as robotics and artificial intelligence. RoboMind is available for Windows, Linux and Mac.
(a Google Chrome extension) uses a programming language that is an extension of the Java programming language. With it you can make games and other applications that use text and graphics. There are lessons available inside SOLE 64 to help you get started (You need internet connection to download them from the net and also if you want to save your programms online and share them with others.). If you do not know what to do, just type help and hit Enter to invoke the User Guide.
is an interactive Java development environment, designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games. It is available for Windows (XP, Vista, Windows 7), Linux and Mac. (You need to have Java 6 or Java 7 JDK installed on your machine to be able to run Greenfoot.).
is a development tool for the Free Pascal compiler. It’s IDE is a stable and feature rich programming environment for creating standalone graphical and console applications. Although it is set up for professional developers, you can set it up for beginners by using package EducationLaz. This package adds some extra option pages to the IDE
to see how this can be made). Lazarus is available for Windows, Linux and Mac (You don’t need to have Free Pascal installed on your computer to run this software).
is an easy to learn programming language, which has efficient high-level data structures and a simple but effective approach to object-oriented programming. If you need help, you can either open built-in help file or the online Beginners Guide for Non Programmers
. Python is available for Windows, Linux and Mac. If you are interested in making games with Python, than you should download
, which is a set of Python modules designed for writing games. It also is available for Windows, Linux and Mac (You have to have Python istalled in order to run Pygame). If you want to see what Python is all about, but you don’t want to have it installed on your computer,
, where both tutorial for beginners and advanced users are available. All you have to do is to click on the chapter you wish to begin from, and follow the instructions.
is a programming language for the Windows operating system. Since it is based on on the classic BASIC programming language it is easy to learn (the detailed tutorial is included in the package), and it has been extended with structured programming facilities and with easy to use GUI commands so you can create your own Windows programs without needing to learn all the underlying details of the Windows operating system. It is available for Windows only (If you need Just Basic for Linux,
). If web programming is what interest you,
. It is available for both Windows (Windows 2000, XP, Vista) and Linux.
is a Basic Programming Language Interpreter. It is fast and has a lot of features. If you want to learn it, you can execute more than 400 samples provided inside \thinBasic\SampleScripts\. You can also take a look at tutorial for beginners, which you can find inside \thinBasic\Tutorial\. Everything you have to do is to double-click the Tutorial_Intro.tBasic script with your mouse. There are two versions of ThinBasic available: a Windows-based version and a command-prompt-based one.
programming language can be classified as a procedure-oriented language with some features typical of object-oriented programming. While it is true that it has no complicated constructions and is easy to use, this on the other hand doesn’t mean that it can’t be used for making more complex applications. The Gentee is available for Windows only (older versions are available for both Windows and Linux).
is an IDE for the Java programming language. The features of BlueJ are designed as an aid to learning object-oriented programming concepts, as well as an aid to program development itself. As a result, some commonly available tools differ from other environments, some tools are absent, and other tools are provided not commonly found in development environments. BlueJ is available for Windows (XP, Vista, Windows 7), Linux ans Mac. (You need to have Java 6 or java 7 installed on your computer to be able to run BlueJ.). If you like BlueJ,
, which implements mostly the same functionalities as BlueJ does. (If you don’t have Java 6 JDK installed, you can still run the software, but it’s compiling capability will be limited.) Unimozer is available for Windows and Mac.
is a system for developing and deploying applications without the frustrations of integrating multiple different products. It incorporates an object-oriented programming language, client-server relational database software, and application frameworks and components. It includes the integrated development environment used to create applications as well as the client and server required to run applications across networks. The mission of the authors is to provide a simple and lightweight alternative to larger, complex, expensive and closed programming software. Suneido is available for all Windows versions from Windows NT to Windows 7.
is the visual assembly programming environment made to build 32-bit Windows applications. Its interface, looking like Visual Basic, allows the user to program Windows assembler applications in an easy way. Source code of a nice CD player, a complete and fast text editor in a dll file, a complete text editor ready to use, a file shredder, a MIDI player and many other applications are all included in the installer package. If you can’t find an answer to your problem in built-in help, you can ask other users in three different forums for advice. There are two versions of Easy Code available – Masm version (using the Microsoft Macro Assembler) and GoAsm version (using the Jeremy Gordon’s Go tools). Easy Code is available for all versions of Windows ranging from Windows 95 to Windows 7.
is a programming language in the Lisp/Scheme family. It distribution features an extensive library that covers systems and network programming, web development, a uniform interface to the underlying operating system, a dynamic foreign function interface, several flavours of regular expressions, lexer/parser generators, logic programming, and a complete GUI framework. It is available for Windows, Linux and Mac.
is a generic purpose visual codeless programming system, which opens the door of computer programming to a much broader population. If you are going to use it, you will be able to easily create multimedia interactive kiosks, generate your own CD-ROM presentations, from yearbooks to conferences and trade-shows or make your own data/information management program with databases. There are two versions of Limnor Studio available: Limnor Studio VS (You have to have Microsoft Visual Studio 2008 Shell (Isolated mode) and .Net 3.5 installed on your computer.) and Limnor Studio 5 (You have to have just .Net 3.5 installed). Limnor Studio is available for Windows XP SP3 and Windows 7.
is a visual programming languages framework to create and use general-purpose visual programming languages where the programmer don’t need to write the code but can visually specify every functional aspect of the program similar to flowcharts and algorithms. It uses a visual programming method called coding simulation method (CSM) rather than drag-and-drop approach. The author recommends using keyboard shortcuts rather than mouse because you can work faster that way. PWCT is available for Windows only (During installation process you can’t change the install directory.).
is a complete lightweight development kit for Windows. It contains (among other things) an optimizing C compiler, a linker, a resource compiler, a message compiler, a make utility and install builders. It also contains an integrated development environment with project management, debugger, source code editor and resource editors for dialogs, menus, string tables, accelerator tables, bitmaps, icons, cursors, animated cursors, animation videos (AVI’s without sound), versions and XP manifests. Pelles C is available for Windows 2000, Windows XP, Vista and Windows 7.
, where you can learn how to program in C, C++, Java, Pascal, etc..
was made more for teenagers and adults in mind.
web page students can learn how to programm in jLogo (jLogo is a version of Logo that is written in the Java programming language.). It strives to teach them the importance and practical aspects of mathematics, processes, problem solving, and critical thinking. The authors have also made a computer program
(that is embedded in their web page and which understands the Logo language), so that a user won’t need any aditional software while learning.