Quotes of the week
"It's not that I'm so smart; it's just that I stay with problems longer." -Albert Einstein
Cool survey graphs!
Who are you (anonymously)?! Now we know!
Thanks to the 300+ group members who took the survey last week. Check out some result charts here!
Links of the week
Topic of the Week: Programming Language Paradigms
Programming language questions often come up during the technical chit-chat quizzing portions of interviews. Some common questions you'll hear:
- What do you like about your programming language? What don't you like about it?
- Compare and contrast language X with language Y.
Especially for more experienced candidates out there who have a few programming languages listed on their resume, it's worthwhile to mentally place your favorite programming language among other languages out there.
Programming language paradigms are ways of categorizing the features and shared attributes of various programming languages. Most languages are considered multi-paradigm, in that they support multiple styles of programming.
This week's challenge: The Big 3 Language Questions
- What do you like about your most often used programming language?
- What don't you like about it, and why?
- What paradigms does your language support?
Submitting your answer
Reply directly to me with your solutions (photos of paper or whiteboards uploaded to imgur get bonus points) and you may be featured in next week's email. If you typed your solution out, you can post your code as a gist and reply with the link.
Make a note if you're looking for jobs and would like to include your email and location with your solution so others can send you job tips.
Last week's problem: Making Change
Last week's problem (github, CFI HackerRank) was to enumerate how many ways a given list of coins can be used to make change for a given cash amount (in cents).
Some of you chose to do top-down "memoization" approach, first solving it as a top down recursive problem and storing function return values to avoid duplicating work.
Others approached the problem by building up a standard dynamic programming bottom-up solution.
And still others just did a direct calculation solution, since I forgot to point out the "do it using dynamic programming" requirement in the problem statement.
- Jean Lauliac in Node.js (gist), a bottom-up solution with nice explanatory comments
- Guru Devanla in Clojure (gist), a top-down memoized solution using Clojure's built-in memoize higher-order function
- Paul Bergeron in Ruby (gist), a top-down memoized approach
- Fernando Ramirez in pseudocode (gist)
- Alfie Parthnum in Common LISP (gist), a bottom-up solution
- Vamshi Appala in Java (gist), a bottom-up solution
How's it going?
Got the job?! Just started a search?
While my mailing list fees have been fueled by your donations, I am fueled by your encouraging stories.
Even if you can't get the Udemy course at an early discount, it's great to hear when people are enjoying the week's issue—reply to me and let me know how your interview preparation is going!
Expand your friends' minds
I end up putting some significant time into preparing our topic overviews and collecting submissions—but the upshot of it is something that's roughly the same amount of work no matter how many of our friends receive this weekly prep. It's like O(log (us and our friends)).
Give your friends and colleagues a link to join us:
so you can practice with them.
Tweets about Interviews
I set up a Twitter account for Coding for Interviews updates on the sporadic schedule, questions for member feedback, and early peeks at your sweet interactive submissions I just can't keep to myself until the next issue.
Miss the topic overview? Suggestion for next week's problem? Let me know:
Follow the group at:
Code every day. Continue improving,
PS. If you order the course and would like the full CFI issue archive, email me with the full name you registered with on Udemy and I'll send you the back issues.