Written By Liz Eggleston
Course Report strives to create the most trust-worthy content about coding bootcamps. Read more about Course Report’s Editorial Policy and How We Make Money.
Course Report strives to create the most trust-worthy content about coding bootcamps. Read more about Course Report’s Editorial Policy and How We Make Money.
You've heard the title "Full-Stack Developer," but what exactly should you learn to make the leap into web? In this webinar, we'll focus on the three most popular languages taught at coding bootcamps: LAMP Stack, MEAN Stack, and Ruby on Rails. Join us for a lowdown on each programming language, explore the syntax with instructors from Coding Dojo, and learn what makes each unique.
In this webinar, we cover:
Mentioned in this webinar:
Coding Dojo's algorithm practice: http://algorithm.codingdojo.com/
Student projects: SKU, a clothing ecommerce web app using PHP, Ajax, MySQL, jQuery, & Javascript. MAKE, a Ruby gem that shortcuts typing out forms and tables for SQL users. temetSleep, an app that connects to your FitBit and uses AngularJS and D3 for data visualization.
Plus, you can follow along with the presentation we use in the webinar:
Liz: Hi, everyone thanks so much for tuning into this live Q&A. My name is Liz Eggleston, I work on Course Report which is a resource for finding the coding bootcamp that’s right for you. Course Report has the most complete directory of bootcamps around the world. You can use it to find schools that fit all of your needs. Check out our blog for interviews with students and instructors and founders at bootcamps across the world. We’ve got application tips, webinars like this, and tons of other really cool resources. I am really excited to start this webinar today. Last month we hosted a webinar about iOS development and whether you should be learning Objective-C or Swift. Spoiler alert: you should learn both. It was really popular and informative, and since I get so many questions that are similar about web development, things like: Which language should I start with? Is one language better or worse or different than others? We decided to host this webinar where we’re going to give you an intro to 3 different programming languages and learn what makes each one unique.
Helping us dive into this subject today are Lance and Speros who are both instructors at Coding Dojo which is a full stack coding bootcamp in Seattle, Silicon Valley, and they just opened a campus in LA as well, and they also have an online option. We are going to cover LAMP stack, MEAN stack, and Ruby on Rails, and we’re going to do it in that order. You can ask questions throughout the next 30 or 40 minutes and we will do our best to answer them. Maybe you’ve heard that one language is better for beginners but you’re not totally sure. Maybe you have a specific project or job in mind and you want to know which technology would work best for that goal. Ask all of these questions. I will let Lance and Speros introduce themselves in a second, but both of these guys were students at Coding Dojo before they were instructors. Lance actually joined us for a really great Q&A a couple of weeks ago. They can answer your questions, not only about the technologies that you’ll learn at Coding Dojo, but also the experience of being at a bootcamp and being at Coding Dojo.
Let’s get started. Lance and Speros introduce yourselves. Tell us how you got to Coding Dojo.
Lance: Hi, I’m Lance Robertson. I was a poet and writer and wanted to be a technology writer so I came to the bootcamp in January and graduated in March and I started TAing and I’ve been training to become a bootcamp leader, so I’m an apprentice right now, doing instructing and that’s what brought me to the bootcamp.
Speros: Hi, everybody, my name is Speros. I’m one of the instructors here at Coding Dojo. Before Coding Dojo, I feel like it was a lifetime ago. I used to be into sales and leadership. That was great and all, but once I got into web development, I was ready to get 10 years into it. Yeah, I’m really excited. One thing to point out to the audience from my bio is that I’m really really passionate about security also. Each instructor here has their own niche that they like, my thing is web security.
Liz: Awesome. Is that something that you incorporate into the Coding Dojo curriculum, security?
Speros: Right now, I’m building a security course for us, using a lot of resources. There’s a lot of things you can teach about security. We’re doing all the essentials that people should know when they code.
Liz: I’m going to share my screen so you can see this presentation. We’re going to start with this quick glossary. A quick rundown of some of the terms that Lance and Speros might use in this presentation. Take it away.
Lance: These are just some high level things we’re going to go over. We’ll start by talking about the request and response cycle with the HTTP protocol. That’s when you type in your address in your web browser, HTTP is the protocol. It’s the hyper text transfer protocol, and this is just a specification that describes how web servers talk to web browsers. The client is the web browser. The server is the thing you make the request to, so when you type an address in there and you hit send, or you type something into a web page form and you press submit, it’s going to send the request to the server and the server’s going to think about it, do it’s little work and send back a response.
The operating system is the environment that the programs are going to run in on your computer or if it’s for the server it’s that the server is in a program running on the computer somewhere and the OS is the environment it runs in. The web server is a program. It’s definitely going to have access to a database, probably that you’re going to be pulling info from and sending info to. You’re probably going to be writing these programs in some kind of a language, generally with web development it’s going to be an interpreted language. The server is going to take the commands that are written in the programming language and interpret them and do something. If you say, “Talk to the database, grab some info, send it to what they requested.” That’s the basics of the server. Do you want to add anything to that?
Speros: That’s it. It’s high level. There’s very little to say, but it does a lot.
Lance: When we talk about a technology stack, like today we’re going to talk about the LAMP stack. It encompasses the whole stack of the server from the operating system it runs on to the actual web server program to the language that you write the programs for your web app in, and then the database technology that you’re using. On your side of the program like when you’re running something in the web browser and the client side, they’ll be some technologies there at work too. That’s the full stack from the front end to the back end, which includes the database.
Liz: Can you explain what the client side works.
Lance: Sure. The client side and the server side, that’s the split that you have. On your side, you have your computer and your web browser and the web browser is a client of the server and the server is running on the back end, so when you type in Google, it goes to Google’s servers, and then it’s going to come back to your results. That’s what client refers to is just your browser, basically.
Liz: Got it.
Lance: A framework is basically a collection of libraries. When you’re making a project, you’re going to have different parts of your project and different features and what they do, you might have to create folders that they go into, so you can keep everything organized in a certain way. Along with that organizational structure, you might have different libraries that you’re going to use that people have already built for many common functions that you might need that lots of people use. Those become things that get used a lot and get developed into libraries. That’s what a framework is, a collection of those things.
So a full stack developer is a person who not only works on the web design, the design of the pages that you would see in the browser on the client side, but they also know how to write the logic on the back end that when the client makes requests, say to the server they want to get certain info from a database, they know how to write that software as well. Also, how to talk to the database and string it all together, so that from the whole request to the response all the way back cycle, they know how to do all the pieces involved in that.
Liz: I think that’s an awesome overview. We’re going to dive into these 3 languages.
Speros: Excellent. Do you want us to give you a little overview of this?
Liz: Please.
Speros: Very quick. The LAMP stack, it follows the letters. Linux is the OS that is essentially used, but another word we call it is AMP stack because you can use Linux, you can use Mac, you can use Windows. So LAMP, MAMP, or SAMP for Windows. Apache being the web server, SQL being the database, and PHP being the interpreter language.
Talking about MEAN stack. MongoDB is the database. It’s a NoSQL database meaning that it’s a non-structured database, which is different fundamentally from Sequel. Node is the web server kind of like Apache. Express and Angular are two different frameworks. We talked about frameworks, where it’s essentially a structure of files and folders and also libraries. Express is the back end, I guess you would say, server side, framework. Angular also, which is a new, very good, hyped up, JavaScript framework.
Lastly, Ruby on Rails. Ruby is a language. Rails is a framework. Ruby on Rails uses a lot more than just a language and a framework. It still has a web server.
Lance: Rails has its own server and a database aspect to it.
Liz: So is the database rolled up into Ruby or Rails? How does that work?
Speros: Not necessarily in Ruby or Rails, but Ruby on Rails has its own built in database. The stack for Ruby on Rails, I don’t think it has any particular one that it uses.
Lance: By default, it includes a SQL type database called SQLite, but you can also plug other kinds of databases in it and the Rails framework kind of has hooks so that whatever database you want to use with it, there will be a library you can pull in that will talk to it.
Speros: They’re very flexible.
Liz: That’s a great breakdown. We’re going to start with LAMP stack.
Speros: Just some pros and cons with LAMP stack. The reason why we say “low barrier to entry” is because in the LAMP stack, PHP is one of the few languages where you can actually build out a website, essentially procedurally, meaning that you don’t need a framework to load pages. At Coding Dojo, it’s the first stack we teach for that reason because you don’t need to use a bunch of helpers and libraries to make something work, and that’s really good fundamentally to understand how things work. There’s great documentation because it’s so old. There’s so much support.
Lance: Right. All of these technologies, Apache, MySQL, or PHP, they’re all kind of descendants of earlier technologies, but in particular those things started to come together basically in the mid-90s. It’s a mature platform, which means it’s well documented, there’s lots of guides and manual to refer to and also a large community that comes along with that.
Speros: That’s big. If someone is looking for their first language, PHP, another reason why it’s so good is that it’s a large community, so a lot of the questions you will have, thankfully, you’ll be able to find the answers online. Whereas something like the MEAN stack for example, which is innately newer, there aren’t that many questions out there. It’s easier to find answers to get yourself unstuck.
Liz: That’s something that we hear a lot about, when a language has great documentation and really strong communities around it. On the flipside, it can mean that it’s hard to find trustworthy information. What are some of the best resources that you’ve found when you can’t figure something out related to LAMP or PHP?
Speros: I think unanimously, there is of course the documentation of PHP, which is great actually.
Lance: Yeah, php.net, the official manual.
Speros: In this case it’s great, not all cases, but in PHP’s case it’s great. Stack Overflow has everyone out there who has looked up any kind of line of code. The reason that’s really good is that people will vote up and down the answers to those questions, so 30 or 40 people who voted up an answer, it’s likely that’s a good answer.
Lance: The only thing you need to watch out with that is how old the information is because sometimes they’ll be talking about an earlier version, so there can be quality issues or timeliness issues. Generally, you can do a little digging and you can find good answers.
Liz: It says it’s the OG stack. How old is PHP?
Lance: All these technologies really started coming together. Linux was developed around 91. PHP started coming together by 97. MySQL as a product came out in 95. Apache was going by the late 90s. So all of those technologies started coming together at that time, so that defined a web development stack is. This whole idea of LAMP stack coalesced there, and then over time people started swapping out different parts of those technologies. Like Speros was saying, you don’t have to run it on Linux. There’s LAMP, there’s MAMP, and all these different ones. People started saying that’s a whole stack, we can replace all of those things and create whole new stacks. That’s why we jokingly put it’s the OG stack because it’s the original web dev stack.
Speros: Just a note. The LAMP stack on its own, learning how Apache works and MySQL and PHP is really not going to be enough to become a web developer in the LAMP stack.
Liz: What kind of companies use LAMP stack or are built on PHP?
Lance: Well, I think the biggest one is Facebook. They started on PHP, and although they’ve migrated to some other technologies as well, they still are really pushing the limits of what PHP can do. In programming, they talk about the difference between compiled and interpreted languages. Other programming languages are pretty much all compiled and it means the computer has to check everything in the code that you wrote and make sure that it’s in the right format and the syntax is good before it will actually run. Interpreted languages go through an interpreter. The interpreter is going to go through each line as it’s executing them along the way. One of the trade offs with that is that an interpreted language isn’t as fast as a compiled language. PHP is an interpreted language. Facebook needed to see greater performance as they scaled up, so they’ve actually created their own extension of PHP called Hip Hop, where it takes PHP code and turns it into code that can be compiled on the fly, so that they’re able to get a lot of performance gains out of that.
Other sites, I know Tumblr was originally written in PHP. It’s common that many smaller sites use it as well. Ones that you might not have heard of, but there are a ton of them out there.
Liz: Wordpress too, right?
Lance: Yeah, Wordpress is built in PHP.
Liz: Awesome. Kevin has a question: What do you say to people who say that PHP is dying and that Node is killing it? Do you think it will remain in the Coding Dojo curriculum for much longer?
Lance: There is a kernel of truth to that. Since it’s such a mature technology and it’s starting to show some limitations in performance, the MEAN stack Node is definitely gaining and Rails and Ruby have become popular with startups and newer technology companies. If you were going to start a web app or service or company, you might not necessarily start with PHP. You might choose one of the newer technology stacks to start with. But the thing is, it’s still easy to learn and there still are companies like Facebook that are pushing the limits of what it can do. There’s still a lot of work out there for PHP developers. Even if a company wants to take their PHP application and port it over to a newer technology, that means there’s still work for PHP developers.
Speros: Knowing both stacks, you’d be very valuable to that company. I think that’s well said. Most importantly, PHP is a very easy language to learn. You jump into Ruby on Rails for instance as a first language and there’s a lot of stuff in the background that you’ll feel is like magic.
Liz: We hear a lot about the magic of Rails. It can be nice to see how things are working underneath the hood first. I think that’s a good transition to talking about MEAN stack.
Speros: MEAN stack is awesome. What do we want to talk about? Let’s talk about the first big part of MEAN stack, which is the Node server. We use Express framework in this case, at least for our school. One of the biggest things is the ability to have asynchronous events with Socket.IO. That’s giving you the ability to create applications where updates from one client or user are seen by everybody live in the moment. People are pushing the envelope now with Node because it’s a very powerful stack with things like notifications. Here’s a perfect example, if you’ve ever tried to book a plane ticket and it says two tickets left and you click it and it says sorry tickets have run out. If you run this with the Node server essentially so that as those tickets go away, users will see it live. As opposed to now you click and realize it’s too late.
Liz: That’s awesome.
Speros: It says, JavaScript based, not Java. Most people know this, but Java language and JavaScript are completely different like apples and pears or whatever you want to compare with fruit. They’re not the same at all in any way.
Lance: It’s definitely a point of confusion. It’s just a weird thing. When JavaScript was being created, Java was the popular new thing at the time, so it was a marketing reason to call it JavaScript. It’s not Java, but that’s the thing about the MEAN stack; all these technologies you use JavaScript to interact with them. This is kind of a new thing with web development. You can actually have your developers just learn one language and then they’re able to write the back end code, the database code, and the front end code. With this, you can actually have developers all talking the same language together instead of having the server side guys speaking a different language. That’s an advantage in that regard. That might be a reason why you would want to use the MEAN stack for something. It’s also very fast and scalable. A Node server can support many tens of thousands of connections.
Speros: We won’t go into details about how the Node server works differently, but if you guys Google “How Node server works” like the event based engine itself, it’s actually pretty interesting to see it.
Lance: All this stuff, none of these things really existed if you go back before say around 2009. This is definitely the newest one. There’s tradeoffs there. If you go on Stack Overflow, there’s not going to be as many answers. The technologies are evolving and developing so quickly, you might find an answer that’s already out of date. Those are potential pitfalls with that.
Liz: I feel like you hear about JavaScript frameworks constantly evolving and new ones coming out and especially in terms of bootcamps, people are asking if they’re going to be learning all these JavaScript frameworks. At Coding Dojo do you typically stick to Mongo, Express, Angular, Node? If there’s something new and exciting would you spend time teaching that?
Lance: We tend to focus on these particular technologies, but even within the last few months, we are continuously updating the platform because the technologies themselves are changing.
Speros: We update things almost daily sometimes. That’s part of the reason, we find ways to teach things better. We’re such a flat organization, we’re able to make calls as we go and so that makes it we can teach 3 or 4 stacks in 12 weeks.
Lance: These are definitely good starting places. You can totally replace any one of these. They’re all kind of built around Node, but you can swap in different databases or use a different front end framework instead of Angular or a different back end framework instead of Express. Just getting started with these is going to give you the vocabulary and experience to go on and learn different ones.
Speros: I have to make a note here. One of the coolest things that we do now with our students because they’re learning 3 full stacks, the second and third project we challenge them to run 2-3 different servers on the same project. You don’t have to do that, but to be able to say I have a project, a website that’s using a Node server on the backend as well as a Ruby server as well as the Apache/PHP base server, it’s actually really cool. It gives them more opportunities to build whatever they want.
Lance: The other stacks might have more mature frameworks for doing more complicated kinds of logics, so you might want to have an app with parts of it built out in another server and then you have a Node server as a helper server that can manage the real time connections aspect of it or chat or something. You can piece those things together. We help you do that. We can talk about who’s actually using these technologies.
Speros: Uber.
Lance: They’re probably the biggest name out there right now. They use the Node server for their real time aspect on their network.
Speros: eBay. LinkedIn. New York Times. There’s a ton more that use it. It’s just like Lance said, many of them different features for their website when they use a Node server, not necessarily the entire project or app. Being able to know how to do that, and actually it’s not that hard if you identify and understand how it works opens up the ability to make apps that you didn’t think were possible.
Liz: In the same way, you say Uber has elements of JavaScript and Node, Uber is a native iOS app right?
Lance: The apps themselves are the clients for their network. On the backend they use Node to manage the real time connections aspect.
Liz: Liam says, it seems like JavaScript is known as a front end language. How did it evolve into being a full stack language and is it better to use for a more front end project?
Speros: The answer depends. JavaScript is great. Every browser within reason should know HTML/CSS and JavaScript, so because of that, everything, for example like jQuery is a JavaScript library. So knowing that on the front end, you’ll have to use it for anything front end, but now with Node, because of Ryan Dahl...
Lance: That’s how it became a server side language. He basically took the JavaScript execution engine that Google developed for their Chrome browser, it’s called the V8 JavaScript engine, and he ported that over to be a server side runtime environment for JavaScript. Using that, he was able to create this web server environment known as Node. That made it possible to use JavaScript as a back end language.
Speros: There’s differences right? On the back end with JavaScript, you can’t use an alert, but on the front end of course you can. There are differences, but essentially it’s the same language so if you learn one you can use it on both sides of the spectrum. Kind of a caveat, keep in mind that JavaScript frameworks are awesome. They can be pretty extensive and pretty intense, like Angular being one of them, but they’re very very powerful. You get best of both worlds, but you’ll have to put more time in general in creating apps for those.
Lance: It also should be noted that it’s not reserved to this stack. If you want to add interactivity to your client side of your app, you’re going to use JavaScript whether you’re on the MEAN stack or LAMP or Ruby on Rails. JavaScript is going to help you to do those things in the actual browser.
Liz: While we’re still on MEAN stack. Tony has a question. What are your least favorite things about Angular?
Lance: It’s very complex. There’s actually a pretty steep learning curve. I don’t want to frame it too negatively, but that’s the tradeoff. It’s very powerful and you can do a lot with it. You can add a ton of customization to it, but it takes a lot of effort and time to ramp up to that.
Speros: It’s complex. There’s a lot into it. There’s not too many applications online where you can go and say let me see a full front end Angular app working, where it can document each part and tell me what it’s doing. You can’t really find that. We create that structure here at Coding Dojo, so it’s easy to do it, but you look elsewhere and because it’s so new, and Angular 2 is coming out, how’s that different? Documentation for Angular is great, but full fledged applications where you can take it as someone who’s learning and break it down on your own, that’s going to be a little bit more difficult than most things I think.
Liz: Let’s move into Ruby. This is the one we hear about the most with bootcamps especially.
Lance: It’s very hot right now.
Liz: It’s so hot right now. Give us the rundown.
Speros: Quick thing about Ruby. There’s one thing that I’m very against. I love Ruby. I’m all about Ruby, but I’m always against when you think of something being done in Ruby and you think that it’s magic. If you don’t know what’s going on in the background, that’s bad. That’s really bad. You shouldn’t start a language and use libraries and not know what they’re doing in the background because when something breaks and you don’t know how it’s done, you’re not really a developer. You’re more like a typist or somebody who puts things together. If you want to become a true developer where you can actually develop, when you get into Ruby on Rails, why we actually choose to use it as our last stack is we don’t anything that is done as a shortcut to be magic to anyone. I think anybody that is learning Ruby on Rails, it’s a phenomenal language and framework, but do your research and don’t just use shortcuts and take them for granted. I can get off my soapbox I guess.
Liz: That was great.
Lance: When you know the fundamentals, it’s nice to be able to lean on some of those features where it takes care of things that are a pain to do manually all the time. Once you already know how to do them, you can appreciate it more and when something goes wrong you’ll know how to step in and debug things and find what the issues are. Other than that, you need to crawl before you walk.
Speros: We’ll talk a little bit about it. Rails is the framework. It can sort out all the files and the structure for the files and a bunch of libraries. The libraries are actually referenced as “Gems.” When someone says they added a Gem to their app, they mean they added a library that somebody made. They’re one and the same. There is this really cool added on database language called Active Record, which does have a pretty steep learning curve if you don’t have a good place to learn or the right tutorials. It’s awesome. In MySQL, you write 3 or 4 lines of code to pull up data from the database from multiple tables. In Ruby, you can do that in 3 words. Just like Rails in general, we talk about shortcuts and you can build things as you go very fast, that’s also true with the database by using Active Record. Active Record is moving to quite a few other places beyond just Ruby right now.
Lance: It has a great way of abstracting away the lower level database commands so you can actually write some code in Active Record syntax and then if you switch database technologies later on, then if you didn’t use too database specific queries, a lot of your code would still work even if you totally swapped out a different database.
Speros: It’s like jQuery is to JavaScript.
Lance: Ruby itself was kind of developed specifically to please programmers. It was developed in the 90s. It’s pretty sweet, in terms of this thing they talk about “syntactic sugar.” Which are just ways of making the programming language more human readable. It doesn’t change how the language works, but it gives you shortcuts and clarifying ways of interacting with the language that makes it more human readable. That’s part of the reason we don’t recommend it as a first thing, but it’s also why we teach it last because you go through all these previous steps to learn the fundamentals and then you can appreciate those things.
Liz: You hear that a lot of startups are built on Ruby on Rails. Is that what you still see? Is it being used by larger, more enterprising companies?
Speros: I would say, holistically, startups. The reason why is that if you become a good Ruby developer, and you start to learn the Ruby ways, which are lines of code that will lean on Gems that will write a lot of the code for you. So to take an idea from idea to prototype, Ruby can do that quite fast.
Lance: Rapid development. That’s why a lot of startups are into it, I think. It makes it faster to go from your concept to execution. Twitter was originally developed on Rails. GitHub has become the defacto portfolio for code and that’s built on Rails. A lot of newer sites. AirBnB. IndieGoGo.
Liz: That is a wonderful introduction to those 3 languages. We have a couple questions about projects. We’re going to get into some actual student projects in a minute, so I’ll hold off on asking those for now. Do we want to go into full stack development in general? Coding Dojo teaches all 3 of those languages, why do you teach all 3?
Speros: Full stack development by itself means you can build every aspect of the app. Here’s the thing, innately, when you look for jobs after you get into development, you’ll find jobs that are either narrow or very wide in spectrum. Wide in spectrum means you have more responsibility, but you can also build on the entire stack, meaning that you can go from the front end all the way to the back end to the database. Usually, with larger companies, that scope is reduced by a lot, where you just kind of work on one particular area. To each their own. Some people love to begin at large companies and get really good at their particular areas. Some people love to be at small companies where they can have more control and be the architect of the project. They both have their advantages. Of course we, and a lot of bootcamps, believe that full stack developer, a well-rounded developer, is the best kind of developer to have because they don’t have to stop where the database starts and say “There’s an error on your side. I don’t know what’s going on there, but let me know when you’re done.” They can actually follow through and fix the entire process. Also, when you’re a developer in a large company and you need to talk to the database guys, you know exactly what’s going on. You’re not going to be clueless. You’ll have an idea even if you’re not an expert.
Lance: People go through like here, some of the students right now, I hear them talking about, “I’m going to go into front end development. I’m going to be user interface or experience design.” Even so, it’s still good to know, if you’re going to be working with the back end developers, how to talk their language. That’s one of the advantages of getting the training in the full stack. Even if you’re not going to be a full stack developer, even if you’re going to be in a larger company where you might just own a smaller piece of the project, you still know how to talk to the other aspects. The other thing about that is, we really emphasize getting people to look at multiple technologies because technologies are going to change over time and you will have to learn something new at some point. That’s a given. That’s guaranteed. You want to be able to learn the fundamentals and how to do things in one stack and then you take it to another technology and you learn how to do things in that one. By the time you’re doing 3 stacks, you start to see what’s common in all of them. It’s not about learning a specific programming language. It’s about learning the fundamentals of programming that are going to apply to any programming language.
Speros: We’re very passionate about that here at Coding Dojo. Having gone through the program ourselves, the biggest thing that I like about what we do is we’ll have one particular assignment that you’ll do in all 3 stacks. You’ll see it built in PHP and how the information moves back and forth and then you see the same process in MEAN stack and Ruby on Rails to really identify how things relate to each other. Once you have the fundamentals of understanding how development works, going into Python/Django, no big deal. Function will be the same. There will be some differences here and there. We actually had a student who was looking for jobs after Coding Dojo and real quick he was saying, “I’m looking possibly to do this other stack, but I’m not familiar with it. Python, what is that like?” We said, “It’s kind of like PHP and Django is the same basic framework.” He said, “Oh, no big deal. I’ve got it.” It’s so amazing to see somebody who came in with 0 knowledge graduate and then as a graduate say I’m going to do a fourth stack no big deal.
Lance: We’ve seen companies say we work in Django/Python, but we hire Rails developers because the transition is not that steep.
Liz: Do you spend the same amount of time teaching at stack? Is the full program 12 weeks long?
Speros: Yeah. We spend a month on each stack, essentially.
Liz: We can move on in a second. Which language is most fun? You’ve both been through the program and now you’re also both teaching. What’s the most fun to teach? Which do you find students catch onto quickly, or build cool stuff with?
Lance: It’s so hard to play favorites. They’re all like your children. You don’t want to favor one too much. It also comes down to personal taste. What kind of technology do you want to apply to a certain problem? Well, it depends. I definitely think that the newer technologies are exciting in a certain way, in terms of what’s possible. The MEAN stack definitely captivates people in that way.
Speros: More challenge perhaps.
Lance: Definitely, and then Ruby and Rails seem like they’ve just been designed to be pleasing to the developer. By the time you get through the MEAN stack, which is very challenging in the Coding Dojo program, and you get to Rails, it’s almost like a relief that has so many nice things to take care of them.
Speros: A lot of people that like a challenge, I think they like the MEAN stack because you have to write every line of code in there except the modules, everything else you have to write out. Versus Ruby on Rails, a lot of it is pre-written, so people that are looking for a way to challenge themselves and control everything tend to go for MEAN. People that just want to get the job done and build their application or company lean towards Ruby.
Lance: To get a prototype out there. Yeah.
Speros: This is very general. It’s absolutely about what you’re building. Your end result is going to determine what language you use. It’s not, “I’m going to build this in MEAN.” It’s, “I need to build this application and here’s what I need from it, therefore this is the best language and framework for it.”
Liz: What is this graph telling us?
Lance: This is just a chart of keywords and things from job listings.
Speros: SQL is used for a lot of these languages. Really you should learn SQL because if you know SQL and you’re doing full stack web development, you could be doing Java, JavaScript, C#, C++, Python, Ruby on Rails, etc. They’re all most likely going to be using SQL and that’s why it’s so high up there. I wouldn’t stop there in any way. I wouldn’t say that I just need to go out and learn SQL and I’ll have lots of opportunities. I’d more say that whatever language I learn, I need to also know SQL because those two are likely to go hand in hand.
Liz: We’re on student demos.
Speros: We picked out 3 projects that we just grabbed. This one is a PHP-based project. This is something the students built week 6. It was essentially a project that was similar to an e-commerce thing selling products. But the really cool thing about this app for example here they had similar items you can query depending on their algorithm. Here is the dashboard for the admins if I’m not mistaken. There is another products view. I don’t recall who did this.
Lance: You have a whole end-to-end solution for e-commerce. You have the user facing portion of it and then the admin can go in and track the orders and can check out and add new products. Being able to build something like this means that you’re going to be able to provide this kind of solution for a small business.
Speros: This is a website by our student Ulysses. It’s a portfolio page. He has all his projects.
Liz: That’s a cool page. I love that.
Speros: The next one, which is equally as cool, Tien(?) actually made this website. This is something he actually used Node for.
Lance: It’s a MEAN stack project.
Speros: He integrated the FitBit API. I’m still logged in.
Lance: You’re looking at his actual FitBit data from the activity tracker on the little wearable device. There’s these great graphs that he built with the JavaScript library like D3.js. It’s designed for data visualization. It has all these dynamic charts so that you can look at the data and plot different things on the X and Y axis for how you slept or how you spent sleeping restfully or if you were tossing and turning and so on. He really put a lot of work into this, and it’s not the most simple thing in the world to be able to pull all this information from an API.
Liz: Do you cover APIs at Coding Dojo?
Speros: Definitely. Actually, one of the things we started covering recently, which is really awesome is the Uber API. It’s really cool that people can use the Uber API to create new things.
Lance: They’re actually doing a hackathon at the new San Jose location and I think it’s this weekend. They’re going to have a certain amount of days to build an app with that.
Speros: 48 hours. This one here is on a loop so it’s showing what it’s doing. The first one was week 6, the second one was week 9, and this one was the capstone project for this particular student. I think this was Ulysses and Sarah. What they actually built was a Gem for the Ruby on Rails framework. This Gem called Make, you can go on there and look it up and download it and use it. You can use this app to decide what tables you want to generate. It will generate tables for you and tables with data for you. That’s really unique because they actually created a Gem that developers use.
Lance: They basically made their own plug-in for the Rails framework to do something that we all have to labor over at times where you’re going to pull information from the database and then you have to display it in some tables on a webpage. It’s actually a hassle to have to write out those tables by hand every single time you’re going to do it. They created this plug-in that automates that process for you, which is really cool.
Liz: It’s also so cool to see them going from consumers of technology to being on the back end to contributing back to the community.
Speros: It’s completely free, of course. Open source. They have their code online. Actually this is a part where you can put together visually all the commands you would do and it will give you the tables you want.
Liz: That’s awesome. We’re running a little bit over. Could you guys stay on for a few more minutes to take some of these questions?
Speros: Sure.
Lance: Yeah.
Liz: This person wants to know if there’s a certain stack that Coding Dojo students gravitate towards when they’re creating their final project. Is it fairly evenly split, or are certain ones more popular?
Lance: For the final project, you can pick whichever stack you want to do it in, but generally we have it structured where you’re doing Ruby at the end of the program. It’s natural to work in that stack because that’s the one you most recently learned, but if you really had a passion for some kind of feature that like the MEAN stack gives you or you had an idea for something that would work well with the LAMP stack, then maybe you could go back to that. That’s just fine. Either way, I think you can choose.
Speros: In my experience I think it’s been 60/40 where most do Ruby, and the rest do the MEAN project, but we try to push the envelope and challenge them to use both. If you use Ruby on Rails make sure you add a MEAN element to it.
Liz: Has anyone gone totally off the deep end and used a technology that you have not taught. You were talking about somebody taking a job in Python.
Speros: Not yet. They’re learning so much.
Liz: Lisa asks how important it is to know iOS or Android development in addition to full stack web.
Speros: I think we can separate those. For one thing, iOS and Android would be native apps for the iPhone and iPad and things like that. The other thing to keep in mind is that there are a lot of engines out there that will take your code and convert it so that it runs on an Android phone or iPhone. That allows students and people to build things in the LAMP stack or the MEAN stack or Ruby on Rails stack and put it on the iPhone.
Lance: You might not necessarily have to write a native iOS or Android app if you’re a web developer, but if you are going to write those kinds of apps, then you’d probably have a web service on the back end that those apps would talk to, so you would want to know the web development piece of it.
Liz: Last question is from Tony. It’s a bit specific. Tony says, what is your process for debugging in Rails given that R-Spec is used by several companies. Is TDD (Test Driven Development) something that you’ll be introducing to the curriculum?
Speros: Absolutely. We introduce it pretty early on actually. Very recently we were making some adjustments. It depends. We talk about TDD. We do use it and we will use it, but we also want people to understand how to debug without TDD. If you’re talking about debugging the actual code, it depends. The way I teach it, we go step-by-step through the process. Not to go too far in detail in the code, but if you go from a controller that’s working with a model, we go step-by-step and make sure each part of your code is moving forward and everything’s successful, and if not we know your issue is here and here. I think a lot of us do it that way. The way you wouldn’t want to do it is to build out your application, write 15 lines of code and try to run it and it breaks somewhere. Where did it break? Should we use TDD for it? Should we do this or that? TDD is great, but keep in mind, TDD in general projects takes usually 50 to 60% of the entire web development timeframe. If it’s worth it to use TDD for the project, considering it will take you double the amount of time to build the same project. That might work really well, but it depends. If it’s your startup and you really need that amount of accuracy, depending on the time, the application, the money that you have. It depends on who’s using it.
Lance: We definitely have material available to students targeting TDD because it’s totally essential to know about when you get out in the workforce.
Liz: Does Coding Dojo give a coding test as part of the interview/application? Is that in a specific language?
Speros: We give out a coding challenge, but with that we have algorithm.codingdojo.com, which is a free app that we use and all it does is shows you how to create algorithms. The coding challenge is a few algorithms. It’s in JavaScript. It’s just to get people to understand the fundamentals, the very basic fundamentals. Once you get into the bootcamp we can really push up from there. For anyone looking to get into development or bootcamps, be certain that you have passion around development because if you’re doing this for the money, you will hate your life probably and you will quit and you’re not likely to develop. The other one is to focus, and not have external distractions, and lastly a great attitude going into it.
Lance: You should definitely love solving problems.
Speros: It’s fun.
Liz: I think we’ve learned why Coding Dojo teaches those 3 stacks and why in that specific order, but for somebody who is just getting started and is going to teach themselves a bit before they apply for Coding Dojo or another bootcamp, do you have any suggestions on which language they should start with, or even more specifically resources that you suggest they start with?
Speros: I would say JavaScript is a great language to learn and start with. There’s a lot of websites out there. Some of the ones that I know have been helpful in the past are Code School, Codecademy. For what they do they’re very effective. You can’t go to them expecting to learn how to build a full app, and that’s not really their purpose, but for learning the syntax and how things flow together, they’re a great resource. They have helped students.
Lance: JavaScript is definitely good to learn just for adding some interactivity to web pages. You can learn your basic web design stuff with HTML and CSS and then JavaScript to start adding more dynamic things. Also, PHP is decent to start learning on because it’s a very easy to install a single package that will have the whole web server and database and interpreter all in one thing. If you have a Mac, just install MAMP and start writing server side code right away. With JavaScript you have to kind of get into Node if you want to start building server side on the back end. The front end all you need is a browser. You could open the developer tools in Chrome right now and start typing JavaScript into the console.
Speros: You could start immediately.
Lance: Console Log - hello world.
Liz: That was such an awesome rundown of all three languages. We obviously went over timewise, but I think that’s totally fair given how much we had to cover. Thank you so much for joining everybody who tuned in and thank you so much to Lance and Speros. Thank you both, you’ve been so wonderful.
To wrap up, visit Course Report, reach out to us on Twitter, Google+, or Facebook. Let us know what you’d like to see in the next live Q&A or webinar, and we’ll see you at the next one. Thanks so much!
Liz Eggleston is co-founder of Course Report, the most complete resource for students choosing a coding bootcamp. Liz has dedicated her career to empowering passionate career changers to break into tech, providing valuable insights and guidance in the rapidly evolving field of tech education. At Course Report, Liz has built a trusted platform that helps thousands of students navigate the complex landscape of coding bootcamps.
Hack Reactor's Zubair Desai shares how bootcampers should (and shouldn't!) use GenAI...
Lighthouse Labs walks us through cybersecurity jobs across 6 different industries!
Why You Should Learn CSS If You’re Not a Software Engineer
A Fullstack Academy instructors shares how AI is used in Data Analytics!
All the biggest coding bootcamp news from July!
Codesmith CEO Will Sentance walks us through the importance of software engineers in the AI age
Plus, find out how to learn WebXR to become a WebXR developer!
Find out how AI is used in digital marketing!
All the biggest coding bootcamp news from June 2024!
TripleTen career coach Sharahn shares results from their recent employer survey!
Sign up for our newsletter and receive our free guide to paying for a bootcamp.
Just tell us who you are and what you’re searching for, we’ll handle the rest.
Match Me