Going Pro


Published on

Published in: Career, Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Going Pro

  1. 1. Michael Losee
  2. 2. About me – Michael Losee Grew up in Layton 6 sisters, no brothers Video Games- Doom, Warcraft, Starcraft, Diablo Reading-Wheel of Time, Forgotten Realms (Drizzt!!), Sword of Truth Hardware- Custom builds, overclocking, benchmarking Teach paralyzed people to walk Aspiring Author
  3. 3. My Credentials Defense Logistics Agency  Lead Systems Analyst  5 Years Experience Emagined Security  Security Consultant/Penetration Test Engineer  2 Years Experience BS Computer Science  Emphasis in Software Engineering  April 2012
  4. 4. Professional Noun: A professional is a person who is paid to undertake a specialized set of tasks and to complete them for a fee.
  5. 5. What makes a professional?
  6. 6. Is it about looking good?
  7. 7. Is it about working really hard?
  8. 8. Is it about ambition?
  9. 9. The Lazy Pro
  10. 10. Professionalism & Mastery “I have been consistently disappointed by the quality of CS graduates. It’s not that the graduates aren’t bright or talented, it’s just that they haven’t been taught what programming is really all about… I think it is possible to get an excellent education at a university. It’s just that I also think it’s possible to wiggle yourself through the system and come out with a diploma, and not much else.” -Robert C Martin The Clean Coder 2011
  11. 11. Are you in the right place? Do you love to tinker with stuff? Stuff like computers? Do you love to code?
  12. 12. Can everyone learn to code? “Despite the enormous changes which have taken place since electronic computing was invented in the 1950s, some things remain stubbornly the same. In particular, most people cant learn to program: between 30% and 60% of every university computer science departments intake fail the first programming course. Experienced teachers are weary but never oblivious of this fact; brighteyed beginners who believe that the old ones must have been doing it wrong learn the truth from bitter experience; and so it has been for almost two generations, ever since the subject began in the 1960s.” ~ Jeff Atwood
  13. 13. Natural Ability? “Some people do not have an aptitude for logical and critical thinking” “Just like some people are natural artists, some people are natural programmers. Some people arent natural programmers, but can become proficient with a lot of practice. Some people cant get it no matter how much or how long they practice.”http://developers.slashdot.org/story/12/09/16/1631239/can-anyone-become-a-programmer
  14. 14. The Fallacy of Talent “Outliers” by Malcom Gladwell  10,000 hour rule “Talent is Overrated” by Geoff Colvin  Deliberate Practice “Mindset” by Carol Dweck  Fixed vs Growth Mindset
  15. 15. Effort I Failed CS 1410 THREE times before finally passing with an A  Had to read the book cover to cover  Spent hours upon hours on assignments Currently helping two different groups at work as lead developer and architect  Re-implement a legacy Oracle Forms application as a java web application  Building a new system to replace an existing 20 year old legacy system My best programming achievement: A software contract to build a “Component Content Management System.”
  16. 16. Document Generation
  17. 17. Document Generation
  18. 18. Principles of Coding Coding is intellectually challenging and exhausting! Your code must work. Your code must solve the problem set for you by the customer. Your code must fit well into the existing system. Your code must be readable by other programmers.
  19. 19. Tips for Coding 3 AM Code Worry Code The Flow Zone Music
  20. 20. Lines of Code Smallest number of lines of code > all? Code unto others and you would have others code unto you. ~Greg Anderson
  21. 21. Lines of Code Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler
  22. 22. Make It Easy Controlling complexity is the essence of computer programming. ~Brian Kernighan
  23. 23. Learn a new language XMLhttp://kousenit.wordpress.com/2008/03/12/nothing-makes-you-want-groovy-more-than-xml/
  24. 24. XML in java
  25. 25. XML in groovy
  26. 26. Not enough sleep? Rely on the snooze button Have a hard time getting out of bed Feel sluggish in the afternoon Get sleepy in lectures or warm rooms
  27. 27. Effects of Sleep Deprivation Fatigue, lethargy, lack of motivation Moodiness and irritability Reduced creativity and problem-solving skills Concentration and memory problems
  28. 28. Sleeping for Dummies No caffeine after 12pm Exercise! Consider supplements like Melatonin Give yourself 30 min to an hour for your “going to bed” routine  Read  Listen to audiobooks Aim for 7.5 to 9 hours each night
  29. 29. Standard interview questions What is the biggest problem you have faced on projects so far and how did you solve it? What are your biggest strengths and weaknesses? Which programming languages are you best at and what’s good and bad about those specific languages? http://www.devtich.com/interview-questions-developer/
  30. 30. Technical Questions Do you know about design patterns? Which design patterns have you used, and in what situations? Explain MVC in simple terms. How would you change the format of all phone numbers in 1000 static html pages? How do you maintain aptitude and stay current with the current technologies? http://www.devtich.com/interview-questions-developer/
  31. 31. Classic Interview Testing Fizzbuzz  Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz. For numbers which are multiples of both three and five print “FizzBuzz.” http://www.devtich.com/interview-questions-developer/
  32. 32. Classic Interview Testing Fizzbuzz
  33. 33. Interviewing Be honest – don’t be afraid to say “I don’t know” Keep preparing and interviewing until you feel confident!
  34. 34. Build Your Network It’s all about networking  Corporate and third party recruiters both rely on their network Build your OWN network  http://linkedin.com/  http://softwaredev.meetup.com/cities/us/ut/ogden/  Your friend Cory
  35. 35. Building My Network WSU -> Federal Summer Internship 6 Months Later:  Call from the old internship about Student Trainee position
  36. 36. Building My Network Meet Cory  Full-time Security Consultant for Emagined Security  Went back to school full-time  My buddy since we were 12 years old  Cory’s Problem: • Turn down work, or teach me and split the money? 6 months later:  Job offer from Emagined
  37. 37. Be this guy