Full-stack JavaScript
JavaScript Hours: 6pm-9pm, Mon/Wed + 1 Saturday per month, 9am-4pm
This course is designed to help students learn how to build web applications and interactive website features from scratch using JavaScript as the primary language. Students will learn both front-end and back-end applications of JavaScript (including jQuery, BackboneJS, and NodeJS). Every web application needs JavaScript, so it’s an extremely powerful language to know, and the demand for JavaScript frameworks such as BackboneJS is only growing.
NOTE: Students with NO CODING EXPERIENCE should consider our Primer course before diving in to Full Stack JavaScript (see the Classes page for technical requirements).
Students will be provided Treehouse accounts, and will be given access to the classroom from 9am-5pm M-F, as well as some Saturdays, leaving lots of time for independent and group learning. Students will primarily be working and learning in groups of 2-4 people.
The Saturdays that are scheduled learning times (1 Saturday each month) will primarily consist of team building, portfolio development, and other technical areas (such as GitHub and Chrome’s Developer Tools) to round out the students’ curriculum, and broaden their exposure to web development tools.
Integrating oneself into the Portland tech community is possibly the single best decision a new student can make. Forging connections and friendships by attending tech meetups and events is the best way to do this. We cannot force you to do this, but we will try (in a loving way :)
PCS hosts and sponsors community events periodically. Some of these will be organized and run by our students.
Another powerful way for web developers to put their best foot forward -- and be extra attractive to employers -- is to contribute to open source projects. We will cover best practices and different ways to make this happen in the latter part of the course.
General Outline (may change slightly each session):
- Week 1: JavaScript Basics -- Basic Syntax, Variables + Operators
- Week 2: JavaScript Basics -- Loops and Conditionals
- Week 3: JavaScript Basics -- Functions and Objects
- Week 4: JavaScript Basics -- Inheritance and Scope, and Linting
- Week 5: JavaScript -- Writing Tests and TDD
- Week 6: JavaScript -- jQuery, Events, and the DOM
- Week 7: JavaScript -- Modular Code
- Week 8: JavaScript -- JSON
- Week 9: JavaScript -- AJAX
- Week 10: JavaScript -- BackboneJS
- Week 11: JavaScript -- BackboneJS
- Week 12: JavaScript -- BackboneJS
- Weeks 13-16: Big projects, mentoring new students, interview preparation
NOTE: Saturday lectures and topics are not listed here, as they will be planned based on the students’ needs
Technical Areas Covered:
- HTML5
- CSS3
- JavaScript
- jQuery
- GitHub
- JSON
- AJAX
- APIs
- Debugging
- Writing Tests
- Web Standards
- BackboneJS
- NodeJS
Professional Web Application Development with Ruby on Rails
Ruby on Rails Hours: 6pm-9pm, Tue/Thurs + some Saturdays 9am-Noon + 1 Saturday per month, 9am-4pm
This class is designed to teach students how build interactive and dynamic web applications using Ruby on Rails in a professional team environment. We start with an intense 1-month refresher on the Ruby language. After that, we dive into the Rails framework, still building our Ruby skills. Along the way, students will become familiar with all aspects of web application architecture. Students will create a series of useful scripts and web applications, culminating in a portfolio-worthy capstone project.
While prior programming and web development experience is helpful, it's not required. We have had students with zero experience work hard, take advantage of all possible learning opportunities, and create impressive skills and capstone web applications. Students with NO CODING EXPERIENCE should consider our Primer course as mandatory if they want to be successful.
Make no mistake: this is an intense, difficult course. It's not for everyone. We give you as many opportunities to learn as we can, but we set a fast pace and cover a lot of ground. In many ways, it's just like working at a small, faced-paced development company. It's a great way for you to discover whether you like that kind of work. If you complete the course, you'll have all the tools you need to be good at that kind of work, too.
Our teaching method emphasizes team-oriented, project-based learning. In addition to self-paced screencasts and interactive coding exercises, students participate in progressively more complicated and interesting real-world coding challenges.
As new members of the local technical and business community, students meet and work with local professional developers as guest lecturers and mentors. We introduce students to the local technical community at a series of meetups, helping students build their professional network. Some Tuesday night lab sessions are held at Hack & Help meetups where students work among their industry peers and get help from professionals.
Students will be expected to spend 2-3 hours studying outside of class for every hour spent in class. This works out to between 20 and 30 hours a week maximum.
Students will be provided Treehouse accounts, and will be given access to the classroom from 9am-5pm M-F, as well as some Saturdays, leaving lots of time for independent and group learning. Students will primarily be working and learning in groups of 2-4 people. Also, PCS hosts a happy hour every other Friday at local restaurants to give students a chance to meet outside of class in a social environment.
Some Saturdays include morning sessions of just the Rails class to make sure students get plenty of teacher and mentor interaction time. One Saturday each month, several classes get together to learn team building, portfolio development, and other technical areas (such as jQuery, GitHub and the Chrome Dev Tools) to round out the students’ curriculum, broaden their exposure to web development tools, and prepare for the job market.
Capstone projects are either selected from student ideas or our industry partners. A powerful way for developers to put their best foot forward -- and be extra attractive to employers -- is to contribute to open source projects. We will cover best practices and different ways to make this happen in the latter part of the course.
The course embodies several themes:
- Programming - Object-oriented design and idiomatic Ruby programming
- Web application development - analysis, architecture, design, construction and cloud deployment
- Using frameworks and libraries to develop web applications
- Teamwork & collaboration - Working in pairs, on teams, and as a member of the community
- Career preparation - portfolio development, presenting your work, making business connections, interviewing, collaborating on projects
- Project management - time management, effective teamwork, iterative and agile development strategies
- Life-long learning strategies - identifying information sources, reading code, developing mentoring relationships
General schedule:
- Month 1 - Ruby language basics, simple code challenges, editing tools, pair programming, teamwork, community
- Month 2 - Advanced Ruby, complex code challenges, web application frameworks (Sinatra, Rails), test-driven development, presentation skills and code walkthroughs
- Month 3 - Working with clients, specifying web applications with user stories and wireframes, creating Rails web applications with test-first methods; career guidance: portfolios, collaboration
- Month 4 - Capstone project design and construction, job hunting skills, technical presentation and mentoring others in the community
PCS Primer
PCS Primer Hours: Total of 15-18 hours of class time + online content over the 4 weeks.
Hit the road running with our PCS Primer course. Learn how to use several important tools used by professional developers, and get a grasp on the underlying concepts of the Internet. This class assumes students have little or no experience with web technologies such as writing code for the web.
Learning Objectives - By the end of class you will be able to:
Collaboratively create a static website using GitHub and Heroku
Explain HTTP requests and the client-server model
Use the command line
Create files in a text editor (Sublime Text 2) and display them in a browser
Inspect a website’s code using the Chrome Developer Tools
Add at least one project and one code sample to your portfolio
Cost: $350 ($250 if you sign up at a PCS event)
COURSE OUTLINE:
Saturday, December 7 (in the classroom - 9am - 4pm, lunch provided)
- PRESENTATION - Foundational Concepts for Web Developers
- Set up accounts for Treehouse, Codeschool, IRC, and Google+
- Download and configure Sublime Text 2
- PRESENTATION - Introduction to HTML5 and CSS3
- Activities in HTML and CSS via JSFiddle
- PRESENTATION - Chrome Developer Tools
- WORKSHOP - Build a web page
Homework: Eat, Breathe, Sleep
Sunday, December 8 (in the classroom - Noon - 4pm)
- PRESENTATION - Sublime Text 2 shortcuts
- Activities in HTML and CSS
- PRESENTATION - GitHub and the Command Line
- Set up accounts for GitHub and Heroku
- PRESENTATION - Pair Programming and Group Project-ing
- WORKSHOP - Build a team, make a plan
Homework: Build a static website with your team
Tuesday, December 10 (time and place TBA - determined by group)
- Practice using GitHub and Heroku
- Get more familiar with Sublime Text 2 shortcuts
- Meet with your team to develop your project further
- CHALLENGE: Use media queries, @font-face, or CSS transitions on your site
Homework: Projects + join us for Friday Happy Hour at Hopworks on Powell!
Friday, December 13 (Happy hour at Hopworks on Powell - 5pm - optional)
- First round is on us!
- No structured content, but help provided as needed
Tuesday, December 17 (time and place TBA - determined by group)
- CHALLENGE: Bootstrap your website
- Each team member adds a new feature on the website
Homework: Projects + online tutorials for Programming Basics, et al
Saturday, January 4 (in the classroom - 9am - Noon)
- PRESENTATION - How does the internet work?
- PRESENTATION - Introduction to the Basics of Programming
- Install NodeJS and do some basic things in the REPL
- WORKSHOP - Write a basic server script to load up your website, and use
Beefy for live reloading
- Groups present their projects
- Feedback
Homework: Online tutorials for Programming Basics, et al
How to apply:
Show up to any PCS event or send an email to info@portlandcodeschool.com.
Front End Freelancing
Front End Freelancing Hours: 9am-12pm, Mon/Wed/Friday
This comprehensive course gives you everything you need to start a freelance career in front-end web development. In this fast-paced, project-based 16-week course, you will learn all the skills necessary for web application front-end design and development:
- Designing web site look, feel, and functionality based on client requirements
- Understanding basic principles of user interface design and user experience patterns
- Constructing web sites with HTML, CSS, JavaScript, and JQuery
- Styling modern, fresh-looking designs with CSS3
- Creating responsive designs that work on phones, tablets, or traditional laptops and wide-screen monitors.
- Using frameworks like Bootstrap
- Programming simple JavaScript routines
- Using jQuery to provide interactivity and engaging user experiences
- Creating easy-to-maintain, hand-crafted sites using static site generators
- Using content-management systems like WordPress to speed development
- Collaborating with development teams using GitHub
- Understanding how to succeed in the freelance job market
- Developing self-motivated job skills for working at home and delivering on time
- Working with temp job agencies like Vitamin T -
Students receive assistance and coaching in landing their first freelance job assignment
This class is for anybody, but particularly at-home new parents with pre-school-aged children who want to enter the remote-worker freelance market. NOTE: Complementary Childcare is provided for class and studying time for all students at no extra cost
The course embodies several themes:
- Standards-based, validated HTML and CSS coding
- Web site client analysis, information architecture, site design, construction, deployment and maintenance
- Using frameworks and libraries to develop web sites
- Working in pairs, on teams, and as a member of the community
- Career preparation - time management, portfolio development, presenting your work, making business connections, interviewing, collaborating on projects
- Project management - time management, effective teamwork, iterative and agile development strategies
- Life-long learning strategies - identifying information sources, reading code, developing mentoring relationships
General schedule
- Month 1 - HTML/CSS basics, validation, simple sites, editing tools, pair programming, teamwork, community
- Month 2 - Advanced HTML/CSS, working with audio and video, static site generators, responsive design, web frameworks (Bootstrap), JavaScript programming basics
- Month 3 - Working with clients, specifying web applications with user stories and wireframes, more JavaScript, creating interactivity with jQuery; career guidance: portfolios, collaboration
- Month 4 - Capstone project design and construction, job hunting skills, pitching to clients, making technical presentations and mentoring others in the community