THE ROAD TO CODE

WEB DEVELOPMENT ANDROID DEVELOPMENT IMMERSIVE IMMERSIVE May 31 May 31

GENERAL ASSEMBLY GENERAL ASSEMBLY

@GA_CHICAGO WWW.FACEBOOK.COM/GENERALASSEMBLYCHI @GA_CHICAGO GENERAL ASSEMBLY @THE_NERDERY

GENERAL ASSEMBLY THE ROAD TO CODE

Scott Baumbich, Swift Developer SWIFT DEVELOPMENT What is Swift? Swift is a modern that made its first appearance in June 2014.

• Powerful • Intuitive • Interactive • Fun • Concise • Expressive How Swift is used in the industry? • iOS

• OS X

• tvOS

• WatchOS

• IBM

• Android?

• Facebook? Choosing Swift as your first programing language.

• Why do “YOU” want to program?

• Time commitment

• Learning curve

• Life style

• Focus Cons Swift Pros • It doesn't do everything • Swift is easier to read and Objective-C does write • You need to know Objective- • Swift can result in shorter C to debug the code/ overall code length framework

• Swift has some clever tricks • Since, the language is new up its sleeve the pool of Swift developers is very limited. The job market for Swift developers Questions? Scott Baumbich, Swift Developer

@ScottBaumbich Scott-Baumbich [email protected] SBaumbich Ruby, Rails & my coding journey Nicole Lopez About Me

engineer at Avant ● Majored in Arabic Language and Literature ● Worked in Immigration for 4 years ● Learned to code through the internet and Meetup groups ● Started learning with HTML, CSS, Sass, and then Python, Javascript, and eventually Ruby and Rails ● Started from the front end now I’m here How I Learned...

Online

-- Introduction to Programming with Python ● Codecademy -- HTML and CSS

Meetups

● Girl Develop It -- Sass and Javascript ● Railsbridge -- Intro to Rails ● Chicago Women Developers -- Basic bash, Ruby

Side Projects & Tutorials Ruby What is Ruby?

A programming language…. … a “dynamic, reflective, object-oriented, general-purpose programming language” Ruby’s methods and object types are dynamically determined at runtime rather than compile time.

Ruby uses reflection to modify its own structure and behavior at runtime (think But what does metaprogramming). Follows an object-oriented that mean? programming paradigm. In Ruby, everything is an object.

Designed for general purpose use across a wide variety of application domains. Why Ruby?

Accessible, flexible, friendly community, and overall FUN "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."

- Yukihiro "Matz" Matsumoto, creator of Ruby pictured >> ● Low barrier of entry to learn Ruby PROS ● Easy variable and method definitions without static typing Ruby is ACCESSIBLE ● Takes care of memory allocation & garbage collection so you don’t have to ● Reads like English ● Great documentation ● Gems are plentiful Simple code leveraging the power of Gems ● Can write the same thing many different PROS ways ● Object-Oriented by nature Ruby is FLEXIBLE ● Duck-typing -- if it acts like a duck and quacks like a duck, it’s a duck ● Metaprogramming -- can write code that writes more code Can also define this array with Array.new(...) or [“hearts, “diamonds”]

Flexibility & brevity of metaprogramming

The Deck object holds many Card objects, keeping Deck & Card logic separate.

Reads like English ● Metaprogramming -- is a blessing and a CONS curse ● Not great for concurrency or high With great power comes performance with real-time data great responsibility. ● Flexibility allows people to be too clever ● No strong typing allows for mysterious bugs ● Easy to depend on gems…. Which may not always be 100% reliable or documented Rails What is Rails?

An opinionated Model View Controller (MVC) framework written in Ruby that favors convention over configuration. ● Speed of app development ○ rails generate … commands PROS ○ rake commands (ruby make) ● Great documentation -- many tutorials ● Tons of features out of the box ○ Database, ORM ○ Server with Rack middleware ○ RESTful routing ○ Web pages with built in templating helpers ○ Mailer, Job processor ○ Test framework ● Tons of gems optimized for rails What you’d see at localhost:3000 when booting up a blank Rails app Accessible documentation across experience levels Helpful Errors ● For beginners, easy to confuse what’s CONS from ruby and what’s from rails ● Rails handles a lot of set-up and configuration from you -- to learn more, you’ll need to dig deeper ● The concept of models in rails can lead to problematic architecture with tight coupling between business logic and objects stored in the database ● Not performant at scale for same reasons Ruby isn’t performant at scale Opportunities in Ruby on Rails Many companies use Rails including Github, Tons of Airbnb, Soundcloud, Avant, Enova, opportunities for Basecamp, Reverb… the list goes on. Ruby and Rails 83 Ruby opportunities listed on Built in devs Chicago’s job page

Rails lends itself to rapid development, so is a language used by many start ups. Main Takeaways

● Ruby is a great first language for beginners interested in building web apps, and Rails is a great first framework to learn. ● Rails is a great framework to use to get your app up and running fast. ● Don’t stop learning at Ruby on Rails. Keep digging beneath the surface to further your knowledge! ● There are tons of job opportunities for Ruby and Rails developers. Questions?

Ruby/Rails Links: http://ruby-doc.org/ http://guides.rubyonrails.org/ Uncle Bob talk about the Lost Years of Software Architecture

More info about companies using Rails & Job opportunities here: http://skillcrush.com/2015/02/02/37-rails-sites/ http://www.builtinchicago.org/jobs http://www.rorjobs.com/ http://stackoverflow.com/jobs?tags=ruby-on-rails Thank you! Github: BintLopez Twitter: @Bint_alBeatz

From PHP to Java Ian Olson

Proprietary and Confidential / © 2016 The Nerdery, LLC WHO Ian Olson ▪ Senior Software Engineer at The Nerdery IS ▪ Professional Developer since 2012 ▪ Open Source Contributor THIS ▪ Laravel (PHP Framework) Artisan NERD? ▪ Languages: Java, PHP, HTML, CSS

Proprietary and Confidential / © 2016 The Nerdery, LLC 3 Let’s Talk about Java Not the coffee!

Proprietary and Confidential / © 2016 The Nerdery, LLC What is Java?

Java is a general purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA), meaning that compiled Java code can run on all platforms that support Java without the need of recompilation.

Proprietary and Confidential / © 2016 The Nerdery, LLC 5 Java Use Cases

Enterprise Desktop Applications

APIs & Micro-Services MVC Framework

Proprietary and Confidential / © 2016 The Nerdery, LLC 6 Getting Started with Java

Tutorials / Websites / Blogs • Spring MVC Getting Started (http://spring.io/guides/gs/serving-web-content) • Mkyong.com (http://www.mkyong.com)

Tools • Spring Boot (http://projects.spring.io/spring-boot) • Spring Initializer (http://start.spring.io) • Intellij IDEA (https://www.jetbrains.com/idea/download/)

Books • Effective Java (2nd Edition) (http://amzn.to/1W4r6W2)

Proprietary and Confidential / © 2016 The Nerdery, LLC 7 Pros and Cons of Java

CONS PROS

▪ Bigger projects can be difficult ▪ #1 Popular Programming to compile and build Languages on TIOBE Index ▪ Development is more ▪ “Write once, run anywhere” expensive than in PHP or ▪ Built with Security in mind Python. ▪ Big and Dedicated Development Community ▪ Outstanding Performance

Proprietary and Confidential / © 2016 The Nerdery, LLC 8 Job Market for Java

Job market for Java is in high demand. A quick search over on Indeed.com,

currently showed 1500+ job postings for Java in Chicago. We here at The

Nerdery are looking for Java software engineers to work on some great

projects.

Proprietary and Confidential / © 2016 The Nerdery, LLC 9 Shameless Plugs

Email: ian.olson@nerdery. com

Twitter: @ianmolson

Proprietary and ConfidentialProprietary / © 2016 and The Confidential Nerdery, LLC / 10 Questions?

Proprietary and Confidential / © 2016 The Nerdery, LLC 11

WHY PYTHON? QUICK INTRO

▸ Unrelated college degree ▸ Bootcamp grad ▸ 2 years in Python ▸ Chicago PyLadies Co-organizer ▸ 3-legged cat owner WHAT IS ! ? COMMON USES ▸ Data science and academia ▸ Web development ▸ Scripting THE ZEN OF PYTHON

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Sparse is better than dense There should be one

--and preferably only one--

obvious way to do it. Errors should never pass silently. POPULAR FRAMEWORKS ▸ Django ▸ Flask ▸ Falcon ▸ Pyramid GETTING A JOB IN PYTHON PYTHON DRAWBACKS

▸ Large community -> slow to adopt innovation ▸ The Global Interperter Lock (GIL) ▸ Fewer bootcamps Now is better than never. THANK YOU

Slides and presenter notes available upon request

@JLUnrein | jessunrein.com THE ROAD TO CODE

WEB DEVELOPMENT ANDROID DEVELOPMENT IMMERSIVE IMMERSIVE May 31 May 31

GENERAL ASSEMBLY