Meet Tamir, a Udacian and a software engineer. Tamir hasn’t always been a software engineer — he switched career tracks from mechanical to software engineering in 2012. Way to go, Tamir!
Tamir was working as a mechanical engineer when he discovered Udacity, had a blast with coding, and realized he wanted to pursue a career in programming. “The nice thing about programming is you don’t need to memorize a bunch of stuff; you need to be able to reason about the things in front of you.”
Amir took Applied Cryptography, Artificial Intelligence for Robotics, Web Development, Design of Computer Programs, and Intro to Computer Science — and updated his resume (and LinkedIn profile) with these courses, along with a description of the specific topics he studied. This extra information helped to demonstrate his effectiveness as a programmer with concrete skills and a passion for learning:
CS387 ‐ Applied Cryptography (David Evans)
Topics covered included: one‐time pad, symmetric encryption, block ciphers, stream ciphers, hash functions, password salting, Diffie–Hellman key exchange, asymmetric encryption, RSA, SSL & TLS, onion routing, and garbled circuits.
Coursework included defeating weak implementations of: OTP, hashing, D‐H (exploiting timing side‐ channel), RSA, and TLS.
CS373 ‐ Programming a Robotic Car (Sebastian Thrun)Topics covered included: monte‐carlo localization, kalman filter tracking, particle filter localization, A* planning & search, and PID control.
Coursework included implementation of all topics covered and a final project required integration of concepts to program a simple autonomous robot.
CS253 ‐ Web Application Engineering (Steve Huffman)
Topics covered included: HTTP, GET & POST, HTML forms, persistent storage & caching, SQL & GQL (Google Datastore), User authentication (password hashing & salting, secure cookies), web APIs (Google Maps & Geolocation), deployment & PaaS, and analytics.
Coursework included implementation of concepts on Google App Engine.
CS212 ‐ Design of Computer Programs (Peter Norvig)Topics covered included: design process, clarity & generality, correctness, simulation, design tradeoffs, decomposition & modularity, efficiency, optimization, and complexity management.
Coursework included heavy practice in all covered topics with many homework problems and challenging exam problems. Select exam solutions are available on GitHub: https://github.com/tamird/CS212.
Tamir currently works as a software engineer at Square. He says, “I really enjoy working with experienced people, and I feel like a strong Ruby on Rails developer now. It’s nice to be around people I can be in awe of, and to feel like my product means something and makes an impact on the world.”
Tamir has three pieces of advice for you:
- Have fun!
- Don’t be intimidated. The internet is a great equalizer. If you don’t know something, just go to the internet, and don’t be afraid to dive in.
- Tersify. Structuring your thoughts in a way the computer can understand you will also make them easier for humans to consume.