SlideShare a Scribd company logo
Academy
Building Better Nerds™
www.codergv.com
All Rights Reserved
http://goo.gl/vfJE4o
Join the presentation
Academy
Building Better Nerds™
www.codergv.com
All Rights Reserved
How does one
learn to program?
by Olmo Maldonado
GMG Agency, LLC
Dec. 4th, 2014
Academy www.codergv.com • All Rights Reserved
Instructor: Olmo Maldonado
➔Over 10 years of experience as Software Engineer
➔Masters in Electrical Engineering from UCLA
➔Founder Tech Tuesdays, Code#RGV
➔MooTools Developer
➔Ex-Googler with Google Photos Team, circa 2009
➔Fluent in JavaScript, PHP, and many more web
tech
Contact & Follow
{facebook, twitter, github}.com/ibolmo
Academy www.codergv.com • All Rights Reserved
Sorry, this is not a
“How to get started programming course”
This course is about
➔jump starting your programming engine
➔life lessons in the programming craft
➔how you should navigate the waters
Disclaimer
Academy www.codergv.com • All Rights Reserved
You should if you
➔Like taking apart problems
➔Want to develop a new skillset that pays
dividends the more you master it
➔Don’t mind stumbling and getting back up
First Step: Why should I learn?
Academy www.codergv.com • All Rights Reserved
You should not if you
➔Expect to “get it” in one week; let alone 1 month
➔Expect to make it “big” within 1 year*
➔Are shy, or need to be continuously motivated
*: Your mileage may vary (YMMV).
First Step: Why should I learn?
Academy www.codergv.com • All Rights Reserved
Bottom Line: Define Your Purpose
Programming is tough. You will be tested
at every single moment. You will get
frustrated. You will wonder whether it’s
going to get any easier. If you don’t have a
purpose, or drive, you will easily give up.
Academy www.codergv.com • All Rights Reserved
Defining A Purpose: Ideas
➔Projects you’ve always wanted to do*
➔Research and fix bugs for your favorite
software, framework, library, or company
➔Clone or improve an existing app or idea
➔Pair up with someone from Code#RGV that
already has a project
➔Do a Challenge
◆E.g. www.hackerrank.com, mscodechallenge.net
*: Not a new idea, but something already done or “easy” to achieve/modify.
Academy www.codergv.com • All Rights Reserved
What if someone asked you to build them a house?
➔Look for similar houses’ blueprints
➔Modify blueprint
➔Seek advice from city regulation, original
architect, and other architects
Alternatively,
➔Start with an empty canvas, a square, and pencil
Why start with something made?
Academy www.codergv.com • All Rights Reserved
Never Start with An Empty Canvas *
Compare your work with what’s expected.
Especially at this stage: make your life easier.
*: Everyone does this all the time. More explanation soon.
Academy www.codergv.com • All Rights Reserved
Review: What is it going to take?
➔ Patience and pressing the I believe button
➔ Aptitude, or hard work, to:
◆ ingest (educate)
◆ investigate (explore)
◆ improve (evolve)
Academy www.codergv.com • All Rights Reserved
So, you still want to code?
Choosing a Language*
➔All languages are (relatively) the same but with
different flavors.
*: Actually, this is probably already chosen for you -- by the projects you’d like to do.
Academy www.codergv.com • All Rights Reserved
Languages: What is a Language?
➔English instructions for the computer
➔You define a program with a language
JavaScript PHP Python
var variable = 1;
1 + 1; // answer is 2
for (var i; i < 10; i++){
console.log(i);
}
function method(argument){
return argument;
}
method(variable);
$variable = 1;
1 + 1; // answer is 2
for ($i; $i < 10; $i++){
echo i;
}
function
method($argument){
return $argument;
}
method($variable);
variable = 1
1 + 1 # answer is 2
for i in range(0, 10):
print i
def method(argument):
return argument
method(variable)
Academy www.codergv.com • All Rights Reserved
What’s in a Language?
Most, if not all, have
➔Variables
➔Types
➔Functions
➔Control Flow
➔Exceptions
➔Comments
➔and many more
Each has their merit
➔Choose by need, and
not by fervor
Want a class in a
specific language?
academy@codergv.com
Academy www.codergv.com • All Rights Reserved
Tip: How to Choose
➔Stick to a scripting language
◆PHP, JavaScript, Python, Ruby, and so on
◆Faster, easier debugging (in most cases), and cross
platform
➔If you are getting paid to learn the language
➔Find a framework (Unity3d, Phonegap) and learn
the underlying language
➔Ask your immediate coding friends what they
are working with, and use that
Academy www.codergv.com • All Rights Reserved
How do I learn?
Seems like a cheap answer, but:
Google is your best friend™
Don’t worry there are examples coming up.
Academy www.codergv.com • All Rights Reserved
When starting a new language
Search for
➔Language comparisons
◆“PHP vs Python”
◆“switching to python from php”
➔Best practices
◆“JavaScript best practices”
➔Gotchas
◆“Python gotchas”
◆“JavaScript bad practices”
Academy www.codergv.com • All Rights Reserved
Resource: Books *
➔The Pragmatic Programmer
◆Free ebook: http://goo.gl/L4yZFv
➔Code Complete
◆Free ebook: http://goo.gl/Nl1OyO
➔Clean Code
◆Free ebook: http://goo.gl/bAQxP7
➔Design Patterns
◆Free ebook: http://goo.gl/9wIEc2
*: Notice not a single one is about a specific language.
Academy www.codergv.com • All Rights Reserved
Google Search for
“Code Complete ext:pdf”
http://bit.ly/1AmvCk9
Learn more about Google Search Operators:
http://www.googleguide.com/advanced_operators_reference.html
*: Use responsibly. Gotta love the internet. :D
Aside: Free Ebooks *
Academy www.codergv.com • All Rights Reserved
Other Resources: Blogs
Blogs are forward thinking, and archive the most
annoying problems
➔Fabien Potencier (Symfony, PHP)
➔CSS-Tricks (CSS)
➔David Walsh (JavaScript, MooTools, jQuery)
➔Dean Edwards (JavaScript)
Follow on Facebook, Twitter, or use IFTTT recipe to receive updates
https://ifttt.com/recipes/99479-rss-to-email-formatted
Academy www.codergv.com • All Rights Reserved
Other Resources: Slideshows
speakerdeck.com
slideshare.net
Academy www.codergv.com • All Rights Reserved
Other Resources: YouTube
The holy grail.
Academy www.codergv.com • All Rights Reserved
Shave off 8 minutes!
Aside: Fast Video Viewing
Shave off 8 minutes!
youtube.com/watch?v=f7AU2Ozu8eo
Academy www.codergv.com • All Rights Reserved
Resources: References
➔use the website of the language
◆php.net, python.org, ecmascript.org, ruby-lang.org
➔tutorial sites
◆lynda.com, code.tutsplus.com
➔online education*
◆codecademy.com, udemy.com, code.org, coursera.com
*: I’m not a fan, but they are improving. YMMV.
Academy www.codergv.com • All Rights Reserved
What’s next? Development
Each worth it’s own class but here’s an overview
➔Editors or IDEs
➔Terminals (Prompts)
➔Package managers
➔Version control
➔Environment or Platform
What should be the next class?
academy@codergv.com
Academy www.codergv.com • All Rights Reserved
Development: Editors or IDEs
Editors (desktop)
➔Sublime Text 3 and
Package Manager
➔Github Atom
➔Textmate
➔Coda
➔Notepad++
IDEs
➔Cloud9 (online)
➔Visual Studio (both)
➔IntelliJ (desktop)
➔XCode (desktop)
Academy www.codergv.com • All Rights Reserved
➔Each language has their own package
management. Find more here
◆brew, gem, npm, easy_install, pip, apt-get, bower,
composer
➔Each has their own way to search for packages
◆brew search, npm search, gem search, apt-cache search
➔Most packages have a version control like ‘git’
➔Review the usage and adoption of the package
Development: Packages
Academy www.codergv.com • All Rights Reserved
https://github.com/iojs/io.js/graphs/contributors
Academy www.codergv.com • All Rights Reserved
I don’t care but use a
version control
➔Use git,
git-scm.com
➔Use mercurial,
mercurial.selenic.com
➔Use SVN or CSV
Development: Version Control
➔github.com
➔bitbucket.org
➔trac.edgewall.org
Travel in time or work in a parallel universe
I don’t care but use a
version control
Academy www.codergv.com • All Rights Reserved
A machine within a machine
➔Take your development environment with you
➔No harm to your computer
Use Vagrant boxes
➔vagrantcloud.com
➔Ex: http://goo.gl/Si8x7u
➔LAMP, Python, Ruby
➔one line to install
Aside: Virtual Machines (Vagrant)
Credit: http://goo.gl/MJhrgV
Academy www.codergv.com • All Rights Reserved
Review (so far)
➔by now you understand the commitment
➔how to get educated and stay educated
➔and setup of your environment
Next
➔Coding and Practical Matters
Academy www.codergv.com • All Rights Reserved
Rule: Don’t Reinvent The Wheel
Someone already went through the trouble
https://github.com/explore
Academy www.codergv.com • All Rights Reserved
Use Code Repositories
➔https://github.com/search/advanced
➔https://code.google.com/hosting/search
➔http://sourceforge.net/directory/freshness:recently-
updated/
Use Package Managers
➔ brew search, npm search, gem search, apt-cache search
Finding Packages
Academy www.codergv.com • All Rights Reserved
https://github.com/search?q=3d
Academy www.codergv.com • All Rights Reserved
Tip: Subscribe
Academy www.codergv.com • All Rights Reserved
➔Read the source code
➔Hack things together
When you’re stuck …
➔Ask questions in
◆stackoverflow.com
◆user forums
◆Code#RGV Forum (Facebook Group)
◆IRC channel
Next Steps
Academy www.codergv.com • All Rights Reserved
Online chatroom(s) for nerds.
http://webchat.freenode.net/?channels=python
Aside: IRC Channel?
Academy www.codergv.com • All Rights Reserved
Aside: Internet Relay Chat (IRC)
➔Many professionals from Fortune 500 from
around the world
➔Most open source are on IRC
◆#mootools, #jquery, #nodejs, #python, #rails, #angularjs
➔Try to ask only if you’ve done a Google Search
➔Don’t be offended, and don’t offend others
➔IRC Clients
◆webchat.freenode.net, Colloquy, mIRC
➔Beware of files
Academy www.codergv.com • All Rights Reserved
How To Ask a Question
Seems stupid, but it’s critical. Include:
➔What have you tried?
➔What did you expect?
➔What happened (if anything), and were there any
errors?
➔Mention what projects you are using
➔Use gist.github.com, or pastebin.com to paste
your code
Academy www.codergv.com • All Rights Reserved
Challenge: Contribute to O.S.
If you’ve benefited from an answer, or from an
open source project you should reciprocate the
gesture.
➔Research and answer questions
◆stackoverflow.com/questions/tagged/javascript?sort=unanswered
◆ forum.jquery.com
➔Fix bugs or send enhancements
◆github.com/facebook/react/issues
◆github.com/iojs/io.js/pull
➔Open Source a private project
Academy www.codergv.com • All Rights Reserved
True Story: I’ve Benefited
By contributing to MooTools
➔Satisfaction in helping others
➔Learned in collaboration
➔My code has been used by hundreds of
developers, and millions of users
➔One of the reasons that Google employed me
This is not an isolated incident, though. Majority of
MooTools devs are now part of Facebook.
Academy www.codergv.com • All Rights Reserved
How does one learn to program?
1. Find a purpose, and stay committed
2. Choose a project/goal and find packages to help
you get started in learning a language
3. Setup your environment and become proficient
4. Be part of a community, and contribute back
Academy www.codergv.com • All Rights Reserved
Homework
Post answers to Code#RGV Forum, or use #codergv
#academy #hw in tweets and posts
1. Define, or find, a project to learn programming
2. Pick one or more language for doing the project
3. Write a Getting Started guide for the language
4. Follow a blog, Github user, and YouTube channel
5. Setup VirtualBox and Vagrant; and a Vagrant Box
6. Answer a question on StackOverflow.com
7. Join a IRC channel and ask a question
Academy
Building Better Nerds™
www.codergv.com
All Rights Reserved
Thank You!
#codergv
#academy
Evaluation
http://goo.gl/D73ljr
lowercase L

More Related Content

PDF
12 tips on Django Best Practices
PDF
Django best practices
PDF
Common optimization for Actionscript 3
PDF
Plugin Development @ WordCamp Norway 2014
PDF
Unit testing @ WordPress Meetup Tilburg 7 januari 2014
PPTX
Unit testing plugins: The 5 W's and an H
PDF
Lessons Learned When Automating
PDF
Php Debugging from the Trenches
12 tips on Django Best Practices
Django best practices
Common optimization for Actionscript 3
Plugin Development @ WordCamp Norway 2014
Unit testing @ WordPress Meetup Tilburg 7 januari 2014
Unit testing plugins: The 5 W's and an H
Lessons Learned When Automating
Php Debugging from the Trenches

Viewers also liked (16)

PDF
Choose us for your payroll needs
PDF
Certificado Piezoeletricidade e Microbiologia
PDF
Revista YES! outubro 2012
PDF
Zungenbrecher mao
PDF
Motorola Moto G Forte - Amazing Android Smartphone
DOC
Sanjeev..
DOCX
SOCIALPORT
PDF
Como se divertian
DOCX
Khrabdem water treatment plan
PPTX
Catedral de la ciudad de la plata
DOCX
El hombre bicentenario isaac asimov
PPTX
MyCareer
PDF
Final Columbia Transcripts
PDF
M2M Project
PPTX
Report on Azole Fungicides and Sepatoria Leaf Blotch Control
PDF
Choose us for your payroll needs
Certificado Piezoeletricidade e Microbiologia
Revista YES! outubro 2012
Zungenbrecher mao
Motorola Moto G Forte - Amazing Android Smartphone
Sanjeev..
SOCIALPORT
Como se divertian
Khrabdem water treatment plan
Catedral de la ciudad de la plata
El hombre bicentenario isaac asimov
MyCareer
Final Columbia Transcripts
M2M Project
Report on Azole Fungicides and Sepatoria Leaf Blotch Control
Ad

Similar to How does one learn to program? (20)

PDF
Learning to code in 2020
PDF
How to Teach Yourself to Code
PPTX
Hello World - Introduction to coding.pptx
PDF
Basics of Computer Coding: Understanding Coding Languages
PDF
Writing code for people
PPT
Learning to code
ODP
Novice Programmers Workshop
PDF
How To Be A Real Developer In Two Easy Steps
PPTX
Coding with Maker Tech
PDF
Surviving the technical interview
PPTX
Untangling spring week8
PDF
Tutor Py
PPTX
Developing a Coding Program for Users - SWFLN Makerpalooza - Session 4
PDF
CPAP.com Introduction to Coding: Part 1
PDF
Systems se
KEY
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
PPTX
Code Institute October Open Evening
PDF
Jr devsurvivalguide
PDF
Write code and find a job
PDF
What I Wish I Knew Before I Started Coding
Learning to code in 2020
How to Teach Yourself to Code
Hello World - Introduction to coding.pptx
Basics of Computer Coding: Understanding Coding Languages
Writing code for people
Learning to code
Novice Programmers Workshop
How To Be A Real Developer In Two Easy Steps
Coding with Maker Tech
Surviving the technical interview
Untangling spring week8
Tutor Py
Developing a Coding Program for Users - SWFLN Makerpalooza - Session 4
CPAP.com Introduction to Coding: Part 1
Systems se
hey I founded a tech startup...OH SHIT I CAN'T CODE. #barcampsg7
Code Institute October Open Evening
Jr devsurvivalguide
Write code and find a job
What I Wish I Knew Before I Started Coding
Ad

More from Olmo F. Maldonado (10)

PPTX
How to Manage in the Tech Industry
PPTX
How Tech Impacts Industry
PPTX
Hangman for the Masses Showcase of Web Tech
PPTX
Intro. to Git and Github
PPTX
Preserving Your Digital Images on the Cloud
PDF
R.E.M.O.T.E. LSAMP Presentation
PDF
R.E.M.O.T.E. SACNAS Poster
PDF
NIMS Backpack Poster
PDF
cametrics-report-final
PPTX
Bet the Farm on the RGV Tech Community
How to Manage in the Tech Industry
How Tech Impacts Industry
Hangman for the Masses Showcase of Web Tech
Intro. to Git and Github
Preserving Your Digital Images on the Cloud
R.E.M.O.T.E. LSAMP Presentation
R.E.M.O.T.E. SACNAS Poster
NIMS Backpack Poster
cametrics-report-final
Bet the Farm on the RGV Tech Community

Recently uploaded (20)

PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Pharma ospi slides which help in ospi learning
PDF
Basic Mud Logging Guide for educational purpose
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Complications of Minimal Access Surgery at WLH
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Pre independence Education in Inndia.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Cell Structure & Organelles in detailed.
PPH.pptx obstetrics and gynecology in nursing
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Pharma ospi slides which help in ospi learning
Basic Mud Logging Guide for educational purpose
102 student loan defaulters named and shamed – Is someone you know on the list?
Complications of Minimal Access Surgery at WLH
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Supply Chain Operations Speaking Notes -ICLT Program
STATICS OF THE RIGID BODIES Hibbelers.pdf
Anesthesia in Laparoscopic Surgery in India
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Abdominal Access Techniques with Prof. Dr. R K Mishra
Microbial disease of the cardiovascular and lymphatic systems
human mycosis Human fungal infections are called human mycosis..pptx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Pre independence Education in Inndia.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Cell Structure & Organelles in detailed.

How does one learn to program?

  • 1. Academy Building Better Nerds™ www.codergv.com All Rights Reserved http://goo.gl/vfJE4o Join the presentation
  • 2. Academy Building Better Nerds™ www.codergv.com All Rights Reserved How does one learn to program? by Olmo Maldonado GMG Agency, LLC Dec. 4th, 2014
  • 3. Academy www.codergv.com • All Rights Reserved Instructor: Olmo Maldonado ➔Over 10 years of experience as Software Engineer ➔Masters in Electrical Engineering from UCLA ➔Founder Tech Tuesdays, Code#RGV ➔MooTools Developer ➔Ex-Googler with Google Photos Team, circa 2009 ➔Fluent in JavaScript, PHP, and many more web tech Contact & Follow {facebook, twitter, github}.com/ibolmo
  • 4. Academy www.codergv.com • All Rights Reserved Sorry, this is not a “How to get started programming course” This course is about ➔jump starting your programming engine ➔life lessons in the programming craft ➔how you should navigate the waters Disclaimer
  • 5. Academy www.codergv.com • All Rights Reserved You should if you ➔Like taking apart problems ➔Want to develop a new skillset that pays dividends the more you master it ➔Don’t mind stumbling and getting back up First Step: Why should I learn?
  • 6. Academy www.codergv.com • All Rights Reserved You should not if you ➔Expect to “get it” in one week; let alone 1 month ➔Expect to make it “big” within 1 year* ➔Are shy, or need to be continuously motivated *: Your mileage may vary (YMMV). First Step: Why should I learn?
  • 7. Academy www.codergv.com • All Rights Reserved Bottom Line: Define Your Purpose Programming is tough. You will be tested at every single moment. You will get frustrated. You will wonder whether it’s going to get any easier. If you don’t have a purpose, or drive, you will easily give up.
  • 8. Academy www.codergv.com • All Rights Reserved Defining A Purpose: Ideas ➔Projects you’ve always wanted to do* ➔Research and fix bugs for your favorite software, framework, library, or company ➔Clone or improve an existing app or idea ➔Pair up with someone from Code#RGV that already has a project ➔Do a Challenge ◆E.g. www.hackerrank.com, mscodechallenge.net *: Not a new idea, but something already done or “easy” to achieve/modify.
  • 9. Academy www.codergv.com • All Rights Reserved What if someone asked you to build them a house? ➔Look for similar houses’ blueprints ➔Modify blueprint ➔Seek advice from city regulation, original architect, and other architects Alternatively, ➔Start with an empty canvas, a square, and pencil Why start with something made?
  • 10. Academy www.codergv.com • All Rights Reserved Never Start with An Empty Canvas * Compare your work with what’s expected. Especially at this stage: make your life easier. *: Everyone does this all the time. More explanation soon.
  • 11. Academy www.codergv.com • All Rights Reserved Review: What is it going to take? ➔ Patience and pressing the I believe button ➔ Aptitude, or hard work, to: ◆ ingest (educate) ◆ investigate (explore) ◆ improve (evolve)
  • 12. Academy www.codergv.com • All Rights Reserved So, you still want to code? Choosing a Language* ➔All languages are (relatively) the same but with different flavors. *: Actually, this is probably already chosen for you -- by the projects you’d like to do.
  • 13. Academy www.codergv.com • All Rights Reserved Languages: What is a Language? ➔English instructions for the computer ➔You define a program with a language JavaScript PHP Python var variable = 1; 1 + 1; // answer is 2 for (var i; i < 10; i++){ console.log(i); } function method(argument){ return argument; } method(variable); $variable = 1; 1 + 1; // answer is 2 for ($i; $i < 10; $i++){ echo i; } function method($argument){ return $argument; } method($variable); variable = 1 1 + 1 # answer is 2 for i in range(0, 10): print i def method(argument): return argument method(variable)
  • 14. Academy www.codergv.com • All Rights Reserved What’s in a Language? Most, if not all, have ➔Variables ➔Types ➔Functions ➔Control Flow ➔Exceptions ➔Comments ➔and many more Each has their merit ➔Choose by need, and not by fervor Want a class in a specific language? [email protected]
  • 15. Academy www.codergv.com • All Rights Reserved Tip: How to Choose ➔Stick to a scripting language ◆PHP, JavaScript, Python, Ruby, and so on ◆Faster, easier debugging (in most cases), and cross platform ➔If you are getting paid to learn the language ➔Find a framework (Unity3d, Phonegap) and learn the underlying language ➔Ask your immediate coding friends what they are working with, and use that
  • 16. Academy www.codergv.com • All Rights Reserved How do I learn? Seems like a cheap answer, but: Google is your best friend™ Don’t worry there are examples coming up.
  • 17. Academy www.codergv.com • All Rights Reserved When starting a new language Search for ➔Language comparisons ◆“PHP vs Python” ◆“switching to python from php” ➔Best practices ◆“JavaScript best practices” ➔Gotchas ◆“Python gotchas” ◆“JavaScript bad practices”
  • 18. Academy www.codergv.com • All Rights Reserved Resource: Books * ➔The Pragmatic Programmer ◆Free ebook: http://goo.gl/L4yZFv ➔Code Complete ◆Free ebook: http://goo.gl/Nl1OyO ➔Clean Code ◆Free ebook: http://goo.gl/bAQxP7 ➔Design Patterns ◆Free ebook: http://goo.gl/9wIEc2 *: Notice not a single one is about a specific language.
  • 19. Academy www.codergv.com • All Rights Reserved Google Search for “Code Complete ext:pdf” http://bit.ly/1AmvCk9 Learn more about Google Search Operators: http://www.googleguide.com/advanced_operators_reference.html *: Use responsibly. Gotta love the internet. :D Aside: Free Ebooks *
  • 20. Academy www.codergv.com • All Rights Reserved Other Resources: Blogs Blogs are forward thinking, and archive the most annoying problems ➔Fabien Potencier (Symfony, PHP) ➔CSS-Tricks (CSS) ➔David Walsh (JavaScript, MooTools, jQuery) ➔Dean Edwards (JavaScript) Follow on Facebook, Twitter, or use IFTTT recipe to receive updates https://ifttt.com/recipes/99479-rss-to-email-formatted
  • 21. Academy www.codergv.com • All Rights Reserved Other Resources: Slideshows speakerdeck.com slideshare.net
  • 22. Academy www.codergv.com • All Rights Reserved Other Resources: YouTube The holy grail.
  • 23. Academy www.codergv.com • All Rights Reserved Shave off 8 minutes! Aside: Fast Video Viewing Shave off 8 minutes! youtube.com/watch?v=f7AU2Ozu8eo
  • 24. Academy www.codergv.com • All Rights Reserved Resources: References ➔use the website of the language ◆php.net, python.org, ecmascript.org, ruby-lang.org ➔tutorial sites ◆lynda.com, code.tutsplus.com ➔online education* ◆codecademy.com, udemy.com, code.org, coursera.com *: I’m not a fan, but they are improving. YMMV.
  • 25. Academy www.codergv.com • All Rights Reserved What’s next? Development Each worth it’s own class but here’s an overview ➔Editors or IDEs ➔Terminals (Prompts) ➔Package managers ➔Version control ➔Environment or Platform What should be the next class? [email protected]
  • 26. Academy www.codergv.com • All Rights Reserved Development: Editors or IDEs Editors (desktop) ➔Sublime Text 3 and Package Manager ➔Github Atom ➔Textmate ➔Coda ➔Notepad++ IDEs ➔Cloud9 (online) ➔Visual Studio (both) ➔IntelliJ (desktop) ➔XCode (desktop)
  • 27. Academy www.codergv.com • All Rights Reserved ➔Each language has their own package management. Find more here ◆brew, gem, npm, easy_install, pip, apt-get, bower, composer ➔Each has their own way to search for packages ◆brew search, npm search, gem search, apt-cache search ➔Most packages have a version control like ‘git’ ➔Review the usage and adoption of the package Development: Packages
  • 28. Academy www.codergv.com • All Rights Reserved https://github.com/iojs/io.js/graphs/contributors
  • 29. Academy www.codergv.com • All Rights Reserved I don’t care but use a version control ➔Use git, git-scm.com ➔Use mercurial, mercurial.selenic.com ➔Use SVN or CSV Development: Version Control ➔github.com ➔bitbucket.org ➔trac.edgewall.org Travel in time or work in a parallel universe I don’t care but use a version control
  • 30. Academy www.codergv.com • All Rights Reserved A machine within a machine ➔Take your development environment with you ➔No harm to your computer Use Vagrant boxes ➔vagrantcloud.com ➔Ex: http://goo.gl/Si8x7u ➔LAMP, Python, Ruby ➔one line to install Aside: Virtual Machines (Vagrant) Credit: http://goo.gl/MJhrgV
  • 31. Academy www.codergv.com • All Rights Reserved Review (so far) ➔by now you understand the commitment ➔how to get educated and stay educated ➔and setup of your environment Next ➔Coding and Practical Matters
  • 32. Academy www.codergv.com • All Rights Reserved Rule: Don’t Reinvent The Wheel Someone already went through the trouble https://github.com/explore
  • 33. Academy www.codergv.com • All Rights Reserved Use Code Repositories ➔https://github.com/search/advanced ➔https://code.google.com/hosting/search ➔http://sourceforge.net/directory/freshness:recently- updated/ Use Package Managers ➔ brew search, npm search, gem search, apt-cache search Finding Packages
  • 34. Academy www.codergv.com • All Rights Reserved https://github.com/search?q=3d
  • 35. Academy www.codergv.com • All Rights Reserved Tip: Subscribe
  • 36. Academy www.codergv.com • All Rights Reserved ➔Read the source code ➔Hack things together When you’re stuck … ➔Ask questions in ◆stackoverflow.com ◆user forums ◆Code#RGV Forum (Facebook Group) ◆IRC channel Next Steps
  • 37. Academy www.codergv.com • All Rights Reserved Online chatroom(s) for nerds. http://webchat.freenode.net/?channels=python Aside: IRC Channel?
  • 38. Academy www.codergv.com • All Rights Reserved Aside: Internet Relay Chat (IRC) ➔Many professionals from Fortune 500 from around the world ➔Most open source are on IRC ◆#mootools, #jquery, #nodejs, #python, #rails, #angularjs ➔Try to ask only if you’ve done a Google Search ➔Don’t be offended, and don’t offend others ➔IRC Clients ◆webchat.freenode.net, Colloquy, mIRC ➔Beware of files
  • 39. Academy www.codergv.com • All Rights Reserved How To Ask a Question Seems stupid, but it’s critical. Include: ➔What have you tried? ➔What did you expect? ➔What happened (if anything), and were there any errors? ➔Mention what projects you are using ➔Use gist.github.com, or pastebin.com to paste your code
  • 40. Academy www.codergv.com • All Rights Reserved Challenge: Contribute to O.S. If you’ve benefited from an answer, or from an open source project you should reciprocate the gesture. ➔Research and answer questions ◆stackoverflow.com/questions/tagged/javascript?sort=unanswered ◆ forum.jquery.com ➔Fix bugs or send enhancements ◆github.com/facebook/react/issues ◆github.com/iojs/io.js/pull ➔Open Source a private project
  • 41. Academy www.codergv.com • All Rights Reserved True Story: I’ve Benefited By contributing to MooTools ➔Satisfaction in helping others ➔Learned in collaboration ➔My code has been used by hundreds of developers, and millions of users ➔One of the reasons that Google employed me This is not an isolated incident, though. Majority of MooTools devs are now part of Facebook.
  • 42. Academy www.codergv.com • All Rights Reserved How does one learn to program? 1. Find a purpose, and stay committed 2. Choose a project/goal and find packages to help you get started in learning a language 3. Setup your environment and become proficient 4. Be part of a community, and contribute back
  • 43. Academy www.codergv.com • All Rights Reserved Homework Post answers to Code#RGV Forum, or use #codergv #academy #hw in tweets and posts 1. Define, or find, a project to learn programming 2. Pick one or more language for doing the project 3. Write a Getting Started guide for the language 4. Follow a blog, Github user, and YouTube channel 5. Setup VirtualBox and Vagrant; and a Vagrant Box 6. Answer a question on StackOverflow.com 7. Join a IRC channel and ask a question
  • 44. Academy Building Better Nerds™ www.codergv.com All Rights Reserved Thank You! #codergv #academy Evaluation http://goo.gl/D73ljr lowercase L