Code Platoon Week Eleven and Twelve - React

Code Platoon Week Eleven and Twelve – React

The latest and greatest front-end framework that the industry seems to agree on is ReactJS, created by Facebook. This framework is extremely fast and makes the user experience very rich.

React Components

React is a front-end framework based on the idea of components. Components are reusable pieces of code that programmers can nest together in different ways to create dynamic web pages. We’ve worked with different pieces of front-end frameworks before, but React is the latest way to bring together HTML, CSS and JavaScript a complete in one complete package that is super fast and easy to write and organize.

Project-Based Learning

Students will tackle React by creating one large application over two weeks. We’ll start by coding out some very basic functionality to get a feel for how React works and what some of its major benefits are. As we develop the app, we’ll learn how to make API calls in the background, add a search function that updates the page in real time without having to refresh, and add login and logout functionality. We’ll also take a look at some common React libraries like React Router which helps manage the different pages in our app, and Redux for when managing the state of our components becomes too cumbersome.

A Fast Framework at a Fast Pace

By now our students are not just more confident coders, they’re more confident independent learners. By the end of these two weeks, students are often amazed at how much they’ve learned in such a short amount of time. Stepping into our final project weeks, students will have two state-of-the-art frameworks at their disposal, but more importantly, they’ll have the confidence and knowledge to go out and learn more. This opens up possibilities for their capstone projects they could have only dreamed about on week one.

Student presenting to class

Code Platoon Week Ten – Personal Projects

Our aim at Code Platoon is to have students graduate with the tools they need to get a junior role in software development. An important landmark on our road toward that goal is the personal project. We recognize that classroom instruction and curated challenges can teach a lot, but there are still lessons that can only be learned by stepping into a unique project where you’ll need to adapt to the challenges that present themselves along the way. That’s why we dedicate an entire week to letting students develop and deploy their own projects.

Build Something Unique

By now students will have all the skills necessary to build their own projects. They’ll have HTML, CSS and JavaScript to help them build a dynamic and responsive User interface and they’ll have the ability to implement data storage with SQL and Flask on the back end. From there we set them free to create whatever they want. In the past, students have built blogs, e-commerce sites, mapping applications, and chat apps. This is a chance for our students to take what we’ve taught them and explore what interests them. Instructors and mentors will be on hand to provide guidance, but students will do the bulk of the work themselves. The goal is that by the end of the week our students will be able to add a whole new project to their resume.

Brag About Your Work

The last day of the week is presentation day. Students present their applications to the class. Building is a great skill, but knowing how to speak intelligently and clearly about what you’ve built is just as important, especially when hunting for a job. Students will get feedback from instructors and peers on their application and presentation skills. In the end, everyone will vote and awards will be given for the best applications.

Creating Web Apps with Flask

Code Platoon Weeks Seven, Eight, and Nine – Creating Web Apps with Flask

After 6 longs weeks, we finally get to Flask, a microframework written in Python. We will use this framework to develop basic CRUD (Create, Read, Update, Destroy) apps with authentication and integrate with other web services, commonly known as APIs (Application Programming Interface).

CRUD

Most apps on the web are what developers refer to as CRUD apps. These apps are so common that there are hundreds of frameworks that exist to help speed up development. One of the most popular for the Python language is Flask. Students will start to dive deep into Flask. We’ll come back to lessons we learned in week 4 about Python’s object relational mapper Alchemy and learn to hook our Flask apps up with SQL databases. This will also be our first look at how the front-end and back-end come together to create a complete application.

Keeping Apps Secure

Once our apps are up and running, we’ll need a way to keep our users’ data safe. Security on the internet has become an enormous topic with lots of complicated ins and outs to keep track of. Thankfully, there are third party APIs that can help. Code Platoon students will learn how to use these libraries to make their Flask apps less vulnerable to attack. We’ll talk about the different kinds of attacks hackers use to get control of a site and steal data and what industry tools and best practices are commonly used to combat them.

Adding Third Party Functionality

These days, bringing in third party functionality is essential. No one writes their own mapping program – they use Google Maps API. If you want to send a text message from your app, there are services like Twillio. Need to set up a payment system? You’ll probably want to use something like Paypal or Braintree. Applications these days are breaking up into microservices: a bunch of smaller applications that do one thing well. Code Platoon students will learn how to incorporate these services into existing apps.

Adding Behavior and Creating a Personal Website

Code Platoon Week Six – Adding Behavior and Creating a Personal Website

Continuing with our front-end curriculum from last week, we’ll dig into running JavaScript in the browser. Adding Behavior and Creating a Personal Website using JavaScript allows developers to add behavior to their websites: slideshows, more advanced animation, and reacting to user events like moving the mouse or entering text.

JavaScript and the Browser

The Document Object Model, more commonly referred to as the DOM is how the browser understands your web page. We’ll break down how the browser constructs the DOM, why it’s so important, and how we can use JavaScript to traverse it. Students will use technologies like AJAX  and JQuery as well as newer ES6 features like fetch to make HTTP requests in the background.

Building a Portfolio Site

At Code Platoon, we work to make sure that when our students graduate have all the tools necessary to enter the job market as junior developers, which is why we put heavy emphasis on projects to build their portfolios. We’ll have several of these opportunities throughout the cohort and the personal site / blog is just the first. Students will spend the end of this week utilizing their new found HTML, CSS, and JavaScript skills to build and deploy their own personal portfolio site where they will be able to showcase projects and accomplishments as well as host their resumes or any other information they want.

 

 

Learning the web development with code platoon

Code Platoon Week Five – Learning the Web: Structure, Style, Function.

Code Platoon offers a complete full-stack curriculum. In week five we take our first look at front-end web development. Students learn the basics of HTML and CSS, how to implement third-party libraries that will help them create dynamic and visually appealing websites, and will finally see their code run in the browser.

Rules of the Road

In order to build anything for the web, it is essential to understand how it works under the hood. The Hypertext Transfer Protocol (HTTP) is the foundation for communicating on the web. It’s how web browsers like Chrome, Safari, Internet Explorer, and Edge talk to servers and vice versa. Students will get hands-on with HTTP by creating several small applications designed to teach the ins and outs of server-to-client communication. This is an exciting week because students start to see how all that data they have been creating and saving in databases on the server side finally gets into a browser and becomes a web application that a user can interact with.

All About Structure – HTML

Hyper Text Markup Language (HTML) is the foundation for every web page on the internet. It’s what gives web content structure and provides it with meaning, and it is a need-to-know for programmers of any kind. Students will learn how to properly structure an HTML document and how to create common content tags for things like images, links, lists and forms. We’ll discuss how the browser reads and renders the HTML we write, learn the basics of the box model, and best practices to make the code we write readable and the content we create highly accessible.

Adding Style with CSS

HTML may be the nuts and bolts of any web page, but Cascading Style Sheets (CSS) is what gives a website character. Everything about a website’s appearance has CSS code behind it. Students will practice adding color, fonts, and animations to website. We’ll look at the principles behind responsive web design and see how frameworks like Bootstrap can make creating professional looking websites easier.

SQL and Working With Databases

Code Platoon Week Four – SQL and Working With Databases

Programming languages come and go. Frameworks come and go. SQL (structured query language) is forever. Students will spend week four learning how to read and write data to Postres, a modern database, using SQL. Students will learn the basics of database design and how to incorporate a database into their app.

Working With a Database

Saving data to a file is fine for small applications that have limited functionality, but most modern web applications use a relational database. We’ll spend all of week four learning the tools and practices that will allow students to interact with data in much more dynamic and complex ways. The first step will be learning how to create and talk to a database. Databases have their own languages for accessing and manipulating the information they hold. By far the most popular, and the one students will focus on throughout their time at Code Platoon, is SQL. Students will learn how to set up a Postgres database from scratch. They’ll work on building out a schema and start to read and write data, all using SQL.

Database Design

The design and structure of a database can have a huge impact on an application’s performance. Databases need to be adaptable, scalable as an application grows, and changeable as new features get added. They also need to be secure. At Code Platoon, we teach all the skills students will need to build a database that is effective and efficient, and we’ll discuss best practices when it comes to how to store sensitive data like passwords and other personal user information. The highlight of this week will be a day-long database workshop hosted by Hashrocket. Hashrocket is a web consultancy in Chicago / Jacksonville Beach known for creating quality software. One of the presenters will be Jake Worth, a US Army veteran-turned-programmer.

ORM

SQL is a powerful tool but it can get tedious to write. Most languages have something called an object relational mapper or ORM. Python’s ORM is called Alchemy. Think of it as a way to talk to your database using the Python programming language. ORMs help developers read and write to the database more quickly and efficiently. They also cut down on code you have to write.

By the end of week four, students will have most of the nuts and bolts necessary to build their own web applications. We’ll spend week five looking at how to structure and style web pages before jumping into our first framework, Django, where all of the pieces from prior weeks will finally come together.

code platoon objects and data

Code Platoon Week Three – Objects and Data

Week Three is all about data and industry best practices. Students learn the ins and outs of Object Oriented Programming and why it’s such an effective model for writing code and handling data.

Reading and Writing Data

You can’t get too far into programming without eventually having to deal with data. As students develop their skills, they’ll begin to create larger applications. As these apps grow, they will need to consume and create more and more data. We’ll look at ways to organize and save data to files using popular formats like comma separated values (CSV) and javascript object notation (JSON). The latter is one of the most popular ways of passing data around on the web, and working with each will provide a solid foundation for students when we finally get to storing large amounts of information in databases.

Working With Objects

Once students are comfortable reading and storing data, we’ll teach them how to use Python and Javascript to build something useful with that data. One of the most popular ways programmers represent and handle data in their applications is with a paradigm called Object Oriented Programming. OOP allows programmers to easily model and manipulate data in their applications. It’s at the heart of many web applications, and it will be the foundation on which students will create their own programs moving forward.

Code Style

Great code doesn’t just have to be performative, it also has to be readable to other developers. Large applications usually have many hands poking into many parts of the code base. Even on small teams, messy code can lead to large problems. Things like naming conventions, indentation, and where and when to add comments can all affect how code is read and understood by other programmers. We’ll walk students through best practices so that the code they write will always be easy to understand and live up to industry standards.  

We’ll also explore some tools (remember those outside third-party libraries from week two?) which will ensure that by the end of week three, Code Platoon students are writing squeaky-clean code.

Week Two

Teamwork and test driven development

Code Platoon Week Two – Teamwork and test driven development

As Code Platoon students continue to develop fluency in both Javascript and Python, we’ll introduce an approach to testing that catches bugs before they make their way into production code. We’ll also explore a critical success factor in the journey of any software developer which is the ability to collaborate. Students learn how to access free-to-use, or ‘open source’ libraries of code written by other developers before diving into the first of several group projects.

Proactive versus reactive code testing

An often overlooked, but extremely valuable skill when writing code is testing that code. The larger and more complex a developer’s codebase, the more likely it is that things will go wrong or break down. To ensure a small bug doesn’t have a ripple effect that takes down a whole system, good software developers learn to test their code early and often.

Writing effective tests is a skill in its own right. At Code Platoon we teach students to practice Test Driven Development (TDD). TDD is a methodology that anticipates and reduces the likelihood of bugs by proactively coding tests around a desired function before designing and implementing that function.

The tests tell the software developer what the function should not do so that their initial attempt at writing the code which supports that function is clean and less prone to rework. It is a common practice throughout the tech world, but it cannot be taken for granted!

Seeing code through the eyes of others

Developers write lots of code, for sure, but they also spend an enormous amount of time working with code written by someone else.

Before diving into a new codebase from another coder, a developer must first understand how its components interact to achieve the desired result. The ability to do so requires a level of patience, knowledge of predefined constructs, and pattern recognition that does not factor into autonomous code writing.

Getting comfortable using third party libraries enables developers to build really cool stuff at a much faster pace! At Code Platoon, students learn how to search for, install, and use these libraries in both Javascript and Python. We spend time digging through documentation, and discuss the best practices for troubleshooting code that isn’t your own.

Previous Week

 

Best Paying and Most In Demand Programming Languages

The Best Paying and Most In Demand Programming Languages in 2018

At Code Platoon, we track national demand for programming languages so that our veterans and military spouses are trained with the best tools for a career in software development. When you’re deciding which programming language to learn, the following demand-based insights complement a much broader strategy.

This article attempts to answer which programming languages command the highest salaries and are most frequently targeted in job postings.

How we identified the current top programming languages

To answer our questions, we conducted simple searches on Indeed.com, one of the largest job listing sites.

For the question of compensation, we started by searching for the top 15 most popular languages in a recent Stack Overflow survey and mapped the average salary for job listings with those languages. For demand, we tracked the number of total job postings targeting those same languages.

Ranking programming languages by pay and number of openings

The Best Paying and Most In Demand Programming Languages in 2018

Python: This coding language holds the #2 position in both surveys. Python is an interpreted, multi-purpose programming language. It is often used to build web applications, and seeing exploding growth due its use in data science, machine learning, cybersecurity, and dev ops.

Javascript: Often called ‘the language of the web,’ Javascript took #3 in Job Postings and #4 in Average Salary. Javascript is an indispensible language to know for writing web applications, as it works in the browser and on the server side.

Ruby: Highly-valued, Ruby holds #1 for Average Salary and #6 for Job Postings. Like Python, Ruby is an interpreted, multi-purpose language that is relatively easy to learn. Its popularity stems largely from its web development framework, Ruby on Rails, which is very powerful, widely used, and relatively easy to get up and running.

C++: Once a premier top-level programming language and now used primarily in gaming and high-performance applications, C++ stands at #3 in Average Salary and #4 in Job Postings.  The common and useful language C++ was designed for application and systems programming. Since its creation, it’s often been used for office applications, games, and advanced graphics. C++ is very fast and stable, but difficult to learn relative to the other languages in this list (except possibly C).

Java: Integral to large-scale legacy business applications and gaining new relevance through its adoption by Google for Android, Java maintains #1 in Job Postings and #6 in Average Salary. Java’s rankings were an exact flip of Ruby’s in each category. Originally developed by Oracle, Java is extremely popular because it can be used for mobile, web, and desktop app development, and more. Reasonably stable and fast, it is very popular at the enterprise level.

C#:  Similar to Java with Android, C# maintains a solid user base through its adoption in the Unity gaming engine, standing at #5 in Job Postings, and #8 in Average Salary. C# was specifically designed by Microsoft as a competitor to Java. Often used to build desktop apps and video games, as well as web apps, C# remains very popular in the enterprise. It runs on Microsoft’s .NET platform.

Swift/iOS: Swifts owes its rankings of #5 in Average Salary, and #7 in Job Postings to its dominance in the mobile market. Created by Apple, Swift is now often the default language for writing iOS apps (Objective C preceded it). If you want to write apps for the iPhone, look no further.

PHP: The language that powers WordPress, PHP is #8 in Job Postings, and #9 in Average Salary. PHP is a general-purpose scripting language used for the development of web applications. One of the earliest languages for web development (released in 1995), it remains widely popular today.

C: C is one of the oldest and most widely used programming languages in the world, and holds #7 in Average Salary, and #9 in Job Postings. It is used to program everything from operating systems to hardware. What makes this language so difficult to learn is in part why it is so powerful: a lot of concepts that are hidden to users in scripting languages like Python, Ruby and even Java are exposed in C, so that the programmer has more flexibility and complexity available.

What will be the most popular programming language in 2019?

It’s difficult to speculate how these programming languages will fare in the future because the supply of qualified applicants affects the number of open positions. However, as an article from The Economist recently noted, Python now has the largest Google search traffic of any programming language, recently passing Java. Java and Javascript come next.

If you’re also looking for more information on the usefulness of various programming languages, the TIOBE Index and Stack Overflow provide two of the most authoritative reports. Both reports consider industry demand as well as additional perspectives, and incorporate different approaches in determining the usefulness of programming languages.

If you’re a military veteran or military spouse interested in learning to code, you can apply for one of our cohorts now.

Code Platoon now training students in Python

Code Platoon now training students in Python

At Code Platoon, our goal is to serve veterans and military spouses by helping them get a high-demand, achievable career in a short amount of time. In the modern job marketplace, software coding is that high demand position, and the coding boot camp format is the achievable, thorough, and fast way to teach it.

In 2019, we’re expanding that mission through our curriculum by teaching Python, a coding language that will meet our current goals and improve the benefits that our veterans and military spouses will gain from the training.

 

Python gives veterans more options in coding jobs

The main reason to add Python to our curriculum: Jobs.

Python is exploding in popularity, with the number of jobs available and the pay for those jobs among the highest of all programming languages.

While we at Code Platoon teach Ruby on Rails in 2018, which is excellent for web development, Python can be used for web development as well as artificial intelligence, data science, machine learning, scripting, automation, and cybersecurity.

This wider variety of applications allows our graduates to find the type of coding job that best fits them since there are more options with Python. It also increases the likelihood that all of our graduates will find a satisfying and gainful job in the field, as it’s important to both the employer and the employee that there is a solid match in specialization for both talent and enjoyment, not just in general skill.

Secondly, having a greater number of locations, companies, and available positions in Python means that graduates will have a higher chance of employment, more flexibility with locations, pay, and benefits, and improved opportunity for finding a perfect culture fit with employers.

On Indeed.com, as of July 2018, Python is the second most in-demand coding language for new positions, and this number has been consistently high and growing. And in contrast to Java, the most in-demand language, Python is exponentially easier to learn.

Python is easy to learn

Fortunately, Python was created in such a way that it is both versatile and understandable. Since we welcome veterans and military spouses of all skill levels to participate in our coding boot camps, and no prior coding experience is required, Python is the best way to continue meeting the needs of all our students.

Being able to learn Python easily not only decreases the learning curve to become an effective coder, but it also increases confidence and competence at an early level to keep motivation and satisfaction high. There’s a lot to be said for the value of Python for its earning potential and versatility, but it’s also helpful to remember that the psychological component of mastering a skill and choosing a career plays a huge part in how well you do, whether you choose to stick with it, and your quality of life in the job!

Python is valuable to learn now and in the future

While Python will definitely help you land a coding career today, we want to think ahead to which languages will still be valuable and in demand in the future. After all, setting up our veterans and military spouses for short-term success is priority, but we won’t pass up the chance to go beyond that scope and look ahead for their interests.

With fields like AI, cybersecurity, and data science expanding rapidly, the demand for Python will only grow. With our program adapting on the cutting edge alongside the industry, our graduates will have a leg up on the direction of coding jobs and potentially find better long-term job security.

And regardless of whether Python remains the industry standard for so many types of coding jobs, it is the perfect foundation for a lifetime of of software development. Python is becoming widely adopted as the introductory language for computer science programs, so you can continue to build your skills and take on new coding languages in the professional or educational environment after graduating from Code Platoon. Learning Python doesn’t corner coders; it gives them room to grow and adapt.

We at Code Platoon remain committed to being groundbreaking and forward thinking, and our students will always be armed with the latest and greatest technology skills. If you’d like to join one of our cohorts to learn Python, apply now!