If you’ve decided to become a full stack web developer you’ve made a wise choice! Knowing both back-end and front-end technologies can give you a leg up in the tech industry and perhaps even land you land you a six-figure salary.
We often get questions from prospective students about what technologies to focus on. Now, before you make the jump into full stack web development, it’s valuable to have some understanding of the common programming languages and technology stacks, so that you can make an informed decision about how to build your base.
If you’re just beginning your path to a career in web development, here are recommendations for the best programming languages and technologies to learn right out of the gate.
(Tip: Be sure to check out this article on the 9 most in-demand programming languages in 2016!)
Python is an excellent introductory programming language for full-stack developers.
Although it is most popular as a back-end language, it is generally useful in other scenarios. As a general purpose programming language, you can use it to create almost any type of program or software.
Python code is inherently readable, because of an easy-to-learn syntax and an emphasis on good programming style and naming. As an instructor, I appreciate that it even enforces good indentation, which requires programmers to stay very clear on how they organize their loops, conditions and other program logic.
While it’s design is simple, Python is nonetheless incredibly flexible and powerful, which is why a whopping 80 percent of top computer science programs teach Python as an introductory language.
- MongoDB for the database
- Express.js for the web framework
- AngularJS for the frontend framework
- Node.js for the server platform
A few years ago MEAN was just beginning to gain popularity. Now it’s in full swing usage by major tech companies such as Uber, Google, PayPal and Netflix.
So what makes MEAN so great?
Specifically, developers appreciate Node.js —and its mindboggling speed, which when paired with Socket.IO unlocks the possibility of some pretty cool interactive applications.
MongoDB is just one of many NoSQL databases available today that remove the restrictions of more structured databases. This allows you to save more data, and change the types of things that you save, much more flexibly.
Angular is a significant front-end framework that emphasizes real-time UI updates, in an single-page application model.
All told, MEAN has unrivaled support from industry leaders like Amazon, Microsoft and Google. Because it is open source, the savvy developer can tweak it to their preference.
Ruby on Rails
Ruby on Rails is another full-stack framework, and is the technology stack of choice for Twitter, Basecamp and other notable sites.
Mastering Rails will greatly solidify your understanding of core web concepts, and is an extremely desirable skillset within the web development industry.
Rails is similar to – but more refined than – frameworks such as PHP’s CodeIgniter and MEAN’s Express. Rails has excellent built-in support for MVC and REST — with ActiveRecord — a superb relational database ORM.
Ruby (language) and Rails (framework) are stable and mature, with lots of online support. Plus, more so than with MEAN, the Rails subsystems work together seamlessly.
Ruby has a thriving third-party ecosystem of add-ins (gems). If Rails doesn’t do what you need, a gem likely fills the gap.
Additionally, Rails is well-known for enabling one to rapidly build web apps. If you are an entrepreneur or want to prototype your ideas quickly, Rails is the choice for you.
BONUS: Swift iOS
Knowing how to extend your product to the mobile interface is a handy and potentially lucrative tool to have as a full-stack developer.
But, as you might imagine, writing mobile applications is different than building web systems. Mobile devices are powerful rich clients, always with you and always connected. Services like audio/video, location, motion and power-management, and the requirement that it seamlessly pair with the same back-end system created for browsers, can make a mobile app more complex than a full-featured web system.
The compiled language, object-oriented OS and mobile device paradigm of Swift and iOS will make it easier for you to subsequently pick up Java/Android or C#/.NET.
The iOS developer ecosystem is controlled end-to-end by Apple, so documentation is generally accurate and mostly complete (although pieces are sometimes in the previous language, Objective-C).
It’s important to note that the Swift language is new and constantly changing. Apple continues to rapidly evolve both Swift and XCode (the accompanying development environment). As a result, the online support you may have experienced learning other technology stacks is largely absent – or worse, incorrect. Unless you are willing to spend time sorting through things on your own, you may find this frustrating.
However, undoubtedly iOS is very cutting-edge, challenging, and for those reasons, quite in-demand. With the Apple App Store and direct distribution, you can sell apps and extend your product to millions of people!
Learn Full-Stack Development
Rest assured, there’s not one single path to becoming a full stack web developer.
By learning one or more of these technologies you’ll have familiarity with each development layer, be up-to-speed on the most in-demand programming languages, and will be on your way to mastering full-stack development.
If you’re ready to make the plunge, make sure to check out Coding Dojo’s 14-week full-stack web development program that dives into HTML/CSS, Python, MEAN, Ruby on Rails and iOS!
By Martin Puryear, Lead Instructor, Coding Dojo Seattle