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
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
Professional Noun: A professional is a person who is paid to undertake a specialized set of tasks and to complete them for a fee.
What makes a professional?
Is it about looking good?
Is it about working really hard?
Is it about ambition?
The Lazy Pro
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
Are you in the right place? Do you love to tinker with stuff? Stuff like computers? Do you love to code?
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
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
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
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.”
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.
Tips for Coding 3 AM Code Worry Code The Flow Zone Music
Lines of Code Smallest number of lines of code > all? Code unto others and you would have others code unto you. ~Greg Anderson
Lines of Code Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler
Make It Easy Controlling complexity is the essence of computer programming. ~Brian Kernighan
Learn a new language XMLhttp://kousenit.wordpress.com/2008/03/12/nothing-makes-you-want-groovy-more-than-xml/
XML in java
XML in groovy
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
Effects of Sleep Deprivation Fatigue, lethargy, lack of motivation Moodiness and irritability Reduced creativity and problem-solving skills Concentration and memory problems
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
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/
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/
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/
Classic Interview Testing Fizzbuzz
Interviewing Be honest – don’t be afraid to say “I don’t know” Keep preparing and interviewing until you feel confident!
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
Building My Network WSU -> Federal Summer Internship 6 Months Later: Call from the old internship about Student Trainee position
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