401 PreWork “Engineering Readings”
Notes
Understand, Plan, Divide into smaller Problems, Stuck?, Practice ~ This was the premise of how to think like a programmer.
How to tackle an algorithm type programming problem
- Read the problem completely twice.
- Solve the problem manually with 3 sets of sample data.
- Optimize the manual steps.
- Write the manual steps as comments or pseudo-code.
- Replace the comments or pseudo-code with real code.
- Optimize the real code.
As much as 70% of our time should be spent in steps 1-3.
The 5 Whys… created by Sakichi Toyoda, founder of Toyota. The method is simple: when a problem occurs, you drill down to its root cause by asking “Why?” five times. Then, when a counter-measure becomes apparent, you follow it through to prevent the issue from recurring.
Questions
-
What’s the one thing I bring to this career (and a potential employer) that nobody else can? I do not believe it is just a one thing that I bring no one else can. I believe what makes me unique is my vast array of life experiences, working environments, and adaptability. In early childhood I grew up on a small ranch in Eastern Montana near Colstrip. I lived a farmer’s life(including driving tractors) until my family moved to Bridgeport in Chicago when I was 12 years old. Then I quickly got an education in “street smarts”. After high school I joined the Army and learned how to do all the adrenaline junky things like jump out airplanes and rappelling out of helicopters. I also learned how to perform on minimal sleep in high pressure combat situations for days at a time. Since I got out of the military I have worked as a private contractor in combat zones, a nightclub manager, a consultant for ROTC training, a video game tester for SOE, I mined my first Bitcoin in 2010 and still mine today, a ranch hand, a roughneck(oil extraction) for a Halliburton in Williston, ND, I attended a Catholic University, and the list just continues but the point is that it is hard to find an environment I am not comfortable in or don’t have some experience with. My personal focus is on user experience when it comes to coding. When people ask me why I start naming off old search engines no one has heard of or they barely remeber. The reason i do this is there were several search engines in the late 90s that produced better and more meaningful results than Google did… but Google had the best user experience and bought some of those better tech search engines out and integrated thier tech into Google’s search engine. Google realized people wanted more than just results they wanted value and experience as well. The user experience and value Google provided/provides(think Google Maps) put Lycos, Webcrawler, Alta Vista, Excite, and many others basically out of business.
-
What are 3 things I’ll start doing to “un-stick” myself whenever I get stuck on tough piece of code, logic, or feature? Take a minute to walk away and refresh my head, then start the debugging process with console logs/thunderclient to find where/what line of code is broken, then re-access the situation and either start the Goggling process or comment what I was working on out and start a fresh piece of code.
Resources
- Act Like You Make $1000 an Hour
- How to Think Like a Programmer
- Solving Problems
- 5 Whys
- Video: Super Mario Effect