How to become a software developer
facilitated by Rabble and Lena
- There's a computer science test in the UK to figure out who should be a developer through a series of mathematical questions.
- People are told the need to score well, but there's no way to get it right.
- Strategies from programmers - can you create a sufficient mental image to move forward?
- Random guessing
- Invent a fantasy world where each symbol has a meaning
- Try to figure them out one by one
- People in ten-week developer programs:
- Have curiosity
- Find resources
- Computer science degrees teach computation, not useful
- Rabble hires CS-degreed people and self-taught people - considers them equal
- However, design practices and engineering patterns (recursion) are difficult to teach yourself
- BootCampIO (reviews and pricing)
- Bootcamps are fast. Self teaching is important.
What hiring managers are looking for
- Rabble rarely hires people who started programming after puberty.
- You don't have to be a genius developer
- The best programmers are better because they see the code better, write more elegant solutions.
- You need people with different backgrounds.
- "Become a programmer! (You just won't be great.)" -Rabble
Other Notes for New Programmers
- The problems nonprofit developers solve don't need to be complicated, innovative, or new. Fit the needs of the org.
- "We haven't even started our need for programmers. Software is eating the world. We really need more programmers."
- Learning to code can mean being able to have an intelligent conversation.
- "Disproportionate power of a programmer - programmers can drive and everyone else is walking."
- When you build something, if you build it well, you don't have to build it again.
Learning to Program?
- Learn fundamentals (not bugs!)
- If you get a job, try a consultancy, you'll get lots of types of projects.
- Learn in open source programs/languages (more transferable! bigger community!)
Where to Get Fundamentals?
- CodeAcademy for JS & Python
- Learn Python the hard way
- Coursera for data science
- Hadebright's curriculum in GitHub
- Learning a programming language isn't as hard as learning a human language.
- More like learning a dialect of a language you already know.
- Programming concepts are pretty universal.
- Doesn't matter which language you start with.
- For those doing self-teaching, are tehre common pitfalls or things to look out for?
- No, there are a lot of good tutorials.
- Python is a good teaching language.
- Start learning database MySQL
- SQL is a useful language to learn - traditional databases use SQL.
- Valuable to learn, there is a lot to learn.
- At Twitter, everyone should have some working knowledge.
- Get a mentor to check in with who can help you see your progress
- Programming is like "yak-shaving" - you are trying to do something basic, but you get lost and start fixing other things and then forget what you initially wanted to do.
- Pair programming - two keyboards, two monitors, and two mice. You work with a senior programmer to teach and share knowledge, save time, with two heads being better than one.
- Programming is mostly de-bugging
- Time is very important - so is flow.
- You get into a state, sot to interrupt a programmer is breaking that.
- This is why tech companies provide food service and laundry - you don't want to interrupt flow
- Learn programming to better yourself!
- Male developers play the alpha geek game which is uninclusive which is unfortunate
- In sociology they tell you you can't fix anything; social change takes forever, unlike coding and software.
- You can have immediate impact and fix the world!
- Developers can't estimate how long it is going to take.
- Best software is buildt up from small pieces.