what would you recommend if someone wanted to go from nothing (maybe some softw. experience) to be able to do a hardware design like this? Is there any book/courses you consider to be a must?
- I think the most important skill for making hardware is just having a good fundamental understanding of electricity. Just developing an intuition around Ohm's law gets you remarkably far in terms of developing and debugging circuits. Towards that end, Khan's "Introduction to electrical engineering" and MIT's 6.01SC Unit 3 both look great.
- For this specific project, I needed to program an FPGA so I drew on my college experience (18-240) where we learned about FPGAs and Verilog. Coursera's "Introduction to FPGA Design for Embedded Systems" looks like a good option.
- Don't be discouraged by hardware tools. Coming from a software background, using hardware tools is like traveling to a foreign land where good UX is punishable by death. At its core, designing PCBs is really just drawing 2D shapes, and it's striking how painful drawing is using hardware tools (eg Eagle, Kicad) versus how delightful drawing is using artistic tools (eg Sketch, Figma).
Use selenium.py, it is by far the easiest and scalable solution out there. (believe me I have tried everything, beautiful soup, request.py, scrapy.py ... )
Excellent content. I was surfing your web page and it seems ridiculous interesting. Tomorrow I will read everything, do you make all your source code available ?
I personally know people who were hired on their 5th interview. All that matters is your "data points", i.e., how are you improving over the years (it can take from 6 months to 1 yr to be able to re-apply).
I also want to add my 2 cents on that. I am terrible at white-board/ phone interviews but recently I think I was able to crack at it, and here are my thoughts about it:
- go to the root of the problem, run some examples by hand and try to think as a computer. e.g., I was at apple interview and there was this trick question that could be solved using a modified version of binary search. When I ran some example I kept asking myself "if I know that this element in the middle of the matrix is smaller (or larger) than X, what does that mean?"
- be very comfortable about big O notation. If necessary, be ready to present some formula.
- show that you can do the brute force solution. Sometimes the brute force solution seems very stupid (e.g., enumerate all possible subsets and find the best one), but you need to say it!
- most of all, be confident, but not arrogant. It is not the end of the world to not know something, but it is important to show what you do know!
Can you suggest any resources to freshen up on big o notation and fundamental data structures & algorithms that are not academically dense (i.e CLRS)?
I'm currently working through Cracking the coding interview & Elements of programming interviews but I really need to revisit the fundamentals, specially recurrence relations and calculating the order of complexity for an algorithm but I can't find any resources that are not too academically verbose, I have a really hard time reading mathematical notation.
This is my personal recommendation, please notice that I have read "Introduction to Algorithm by Cormen" about 4 years ago, so for me everything was more a catch up than really learning:
for this book one can focuses on the first 7 chapters (revision)
- Leet code editorial solutions https://leetcode.com/articles/ . They provide with the solution and complexity analysis of a few problems. I suggest you try to solve and give your complexity analysis then compare it with the "official" one.
The Stanford/Coursera course on algorithms part 1 is a good resource for Big O. Knuth's "Concrete mathematics", 9th chapter (I think) has some good coverage on Big-O/Omega notation.
Amazing text, last month I have screwed up at an interview just because I had no knowledge about what they were asking. After the interview I google about it for 2 minutes and then I was able to quickly answer that question.
For me you are using the two frameworks harder to prototyping - this is more truth for node, in fact. (this is my opinion, take it on your own).
What I would do in your place is simplify your code. This is, change to ruby and do not use any front end framework (remove angular for now) and just stick with a simple bootstrap integration.
what would you recommend if someone wanted to go from nothing (maybe some softw. experience) to be able to do a hardware design like this? Is there any book/courses you consider to be a must?