Remaining Topics
Package Management
- Would you want to “package” your software?
- Pip: https://packaging.python.org/tutorials/installing-packages/
- Packaging is a universal concept, Lego sets
How is Python different from ____?
- Java
- The dominant backend programming language since the 1990s (Google was first built using Java)
- It is now “owned” by Oracle, a very evil company, and so many prefer not to get involved in using Java to avoid conflict with Oracle
- Java is compiled (it can be run only after being converted from Java code into an optimized format called bytecode), so there is a mandatory, additional step before running software that you’ve authored in Java. This is in contrast to Python, which runs when you tell it to by pointing at a “.py” file
- It is the primary programming language for creating Android applications
- JavaScript
- It primarily runs in web browsers like Chrome, Safari, Firefox
- Node.js allows Javascript to be ran outside of browsers (e.g. on a server like Heroku)
-
Ruby
- Very similar to Python
-
Many say it has reached peak popularity--but Twitter123, Groupon4 were built using Ruby
-
Best known for Ruby on Rails, the equivalent of Python’s Django
- C or C++
- Old languages, created in the 1970’s
- Like Java, these languages have to be converted (“compiled”) into a different format before computers can run the program you’ve authored
- Contemporarily, these are used for “high performance” software--e.g. Google, airplanes, finance
- Objective-C/Swift
- Apple, iOS/MacOS apps
Getting the first job
- Ask. You can’t get a job if you don’t ask for the job.
- Research/reflect on job titles in the industry--not all job titles are “Software Engineer”:
- Solutions engineer/Sales engineer
- Customer support engineer
- Data Analyst/Business Analyst/Technical Analyst (requires SQL)
- You won’t be told why you didn’t get the job, but it helps to know why not
- Understand the timeline and format of interviewing for a software engineering job:
- Interviewing.io:
- a free mock interview platform
- amazing content about recruiting software engineers:
- http://blog.interviewing.io/
- http://blog.alinelerner.com/
- YouTube channel with example technical interviews: https://www.youtube.com/channel/UCNc-Wa_ZNBAGzFkYbAHw9eg
- A very popular tool for aiding coding interviews over the phone: CoderPad
- How some employers outsource their interviewing process: https://karat.com/
- Sample questions: https://www.interviewcake.com/
- Interviewing.io: