# Should I be a Developer?
- Stephon Harris
September 14, 2016
<!--
- Introduce yourself
-->
***

<!-- - WARNING: there is cursing in this presentation -->
***
# It all started back in high school...
<!--
- Initial boom of web 2.0
- Google Suite, Remember the Milk, Quizlet, Zoho
- Zoho points system for StuCo (https://docs.google.com/presentation/d/1aHuu9utLupMe64-00NXzeLUcSOspjqxpVRJLNYZveyM/edit#slide=id.i64)
- log member activities
- present at state conference
- Use technology to solve problems logically
-->
[tmhsstudentcouncil.jimdo.com](http://tmhstudentcouncil.jimdo.com/)
***
# Do you think like this?

<!--
- You may not have had an epiphany from trying to organize 40 of your classmates in high school.
- But if you think like this, you're on the right path to being a Developer
- As I look back, I noticed it was my tact to logically try to organize problems in an if-this-then-that paradigm where I cut my teeth into becoming a developer.
-->
***
# Do you like to break things down?

<!--
- I also knew that I couldn't just tackle things head on. I needed a plan of action. A way to break down my goal of an online system to log points into smaller functions.
- Developers tackle big problems by making them into a set of smaller problems, prioritizing them and tackling them in that order.
-->
***
# Do you hate doing things manually?

<!--
- Truth be told, I didn't feel like spending my weekday afternoons counting people's participation points when I could be watching Prison Break and The Secret Life of an American Teenager. Yep I was a lazy teen. Thankfully that allows me to be great at my profession now. Why do a task 10 times over when you can write one script to do it 10 times for you? Developers don't have a problem doing a little extra initial work in order to do less work in the long-term. Plus humans are stupid and the more they interfere, the more problems arise. Better to automate things anyway.
-->
***
# Do you like to fix problems?

<!--
- I was obsessed with building a better points system. It wasn't just a small idea. I knew it was a problem that many schools faced.
- I knew creating the web app could help some of the 3,000 high schools in Texas with Student Council. I didn't know that was called scaling up back then.
- Coding is the perfect platform for scaling a solution from something you could use to something hundreds, thousands and even millions can use.
-->
***
# Do you have an opinion?

<!--
- Software developers are Opinionated. I thought my point system was the shit. Until I got asked at our state convention what if the site I was running it on got shutdown, or what if it was just easier to manage things on a piece of paper.
- I, however, have been obsessed with technology and I was banking on using an online form because that's where I thought the future was moving. My opinion wasn't wrong either.
-->
***
# Do you like new technology constantly being introduced and hyped about?

<!--
- Speaking of new technology, software developers are notorious for liking the latest sexy framework that's out, and raving about some technology that's only been out for a couple of months. Until you reach that age where you've seen so many technologies come and go and you are so tired from the latest buzz that you refuse to code in anything but cobalt and bully fancy new javascript developers.
- But until that time comes keep your dependencies in order and ever on the look out for an update that will screw your entire code base.
-->
***
# You'll face road blocks
- Not knowing where to start
- Feeling unsure if you've got what it takes
- Lack of support
<!--
- I was one of many that felt overwhelmed by trying to code. It seemed so unnatural, and there were few resources out there for me to learn. Those few resources were usually pedantic assholes who corrected you for not knowing enough.
- It was pretty intimidating starting out. I didn't have a CS class in high school or for that matter anyone else excited about the future of software and web apps.
- I was so easily discouraged and quit a 1000 times.
-->
***
# But you'll overcome them
- ~Not knowing where to start~
- ~Feeling unsure if you've got what it takes~
- ~Lack of support~
<!--
- But I kept coming back. I'd get excited about some new technology and I would be back working on some code.
- Sure I'd get stuck, but if I would just take a step back and go at it with a different approach or ask someone for help, I could eventually get over the roadblock.
- That's why I wanted to create Black Code Collective; to provide the community of encouragement and knowledge that I was looking for by uniting black software developers.
-->
***
# It'll take some work communicating
- Trying to explain your code
- Trying to understand what users want
- Getting awkward stares when you're overly excited about some code you've written, that no one understands the value of your feat except for you.

<!--
- It's hard trying to explain development to others; the why's, how's and what's can be approached from different points and as I stated earlier everyone has an opinion on how they should be answered.
- Some like to sugar coat in bullshit, some just struggle with ambiguity, but if you are developing for someone other than yourself, it will take work communicating.
-->
***
# But you'll learn how to ELI5

<!--
- You'll learn how to speak the business language, to explain why your product is marketable. You'll learn how to speak just enough bullshit to buy yourself more time on a project.
- You'll learn how to say just the right words to get that really smart and sarcastic developer to tell you exactly what you need to know without setting him off on a rant.
-->
***
# It will make you kind of crazy
- Struggling with a problem for 3 days
- Coding in the middle of the night
- Not giving up until you've vanquished the hurdle.
<!--
- I've spent nights coding away into the wee hours of the morning because I'm so obsessed with completing some code or solving a problem. I've argued unsubstantial and trivial points about the proper way to use GIT. I've rigged some code together from a bunch of stack overflow answers, not really knowing the "best way".
-->
***
# But aren't we all?

<!--
- But as my man Kanye says, "name one genius that ain't crazy".
-->
***
# So... Where should I start?
- With a problem!
<!--
- Start with that one thing that constantly nags you that you could fix with some code.
- Break it down into smaller problems.
- Prioritize and solve one step at a time.
-->
***
"Remember it's about the means not the end."
[presentation @ github](https://github.com/theonestep4/talks)
<!--
No one wakes up and says today I have finally become a software developer. It's all a journey one piece of code at a time.
- If you're new and looking for a place to start out check out this learning resource I created.
- If you'd like to check out these slides or other talks I've done check out my github account.
-->