Nathan Wailes - Blog - GitHub - LinkedIn - Patreon - Reddit - Stack Overflow - Twitter - YouTube
Programming / Software Development / Computer Science
Related pages
News sites
Blogs
- James Mickens - The Wisdom of James Mickens
- rec'd by Ari, Jacob, etc.
- Steve Yegge
- originally rec'd by the eccentric Lisp programmer at Coupa Cafe, also rec'd by CodingHorror guy
- https://en.wikipedia.org/wiki/Steve_Yegge
- His older blog site: https://sites.google.com/site/steveyegge2/
- His second blog site: http://steve-yegge.blogspot.com/
- ZenHack.net
- Yang has shared articles from this blog
Getting a job
- 2013 - Josh Kemp - No Degree, No Problem (ebook)
- 2017.05.08 - Quartz - How I went from zero to San Francisco software engineer in 12 months
You need real-world skills and you have to learn a lot. That means a lot of hours of work, there’s no way around it. Passion helps.
Building projects is an excellent way to learn, and once you know enough it is not very hard to find open-source projects or other high impact projects to work on.
- JavaScript and React are great to learn and in high demand! But learn what interests you.
- It’s critical that you cultivate a community of others who are learning to code or working as engineers. Network in your city. Network online. Find collaborative projects to work on. Ask for help.
- If you can afford it, try to have some patience. This is what I struggled with the most.
- 2017.10.31 - malisper.me - How to Get a Programming Job Straight Out of High School
InterviewCake
'Using a hash map is [u]so common in coding challenge solutions, it should always be your firstthought. Always ask yourself, right from the start: "Can I save time by using a hash map?"[/u] '
Quote:
You might have heard of binary search before, but that doesn't help you much unless you've learned the lessons binary search teaches us.
Binary search teaches us that when an array is sorted or mostly sorted:
1. The value at a given index tells us a lot about what's to the left and what's to the right.
2. We don't have to look at every item in the array. By inspecting the middle item, we can "rule out" half the array.
3. We can use this approach over and over, cutting the problem in half until we have the answer. This is sometimes called "divide and conquer."
So whenever you know an array is sorted or almost sorted, think about these lessons from binary search and see if they apply.
Quote:
I was hired not by replying to every email and answering the phone for every recruiter that called, but by getting lost in the wrong building and bumping into Kalimar Maia who was also in the wrong building =)
Yes, that's it no secret technique, I was lost and introduced myself to Kalimar and asked if he was going to the Ruby Meetup group as well, and he said yes. We talked a little and hit it off well. We found the right building and I happened to give a short 5 minute presentation that night. Kalimar said I did a good job and that we should get coffee some time.
Kalimar emailed me the next day and I said I'd love to meet for coffee and get some advice on how to get hired or just about development in general. Anyway long story short I had no idea that ZipList was thinking of bringing somebody new onto their team. We met for coffee and towards the end of the conversation mentioned the idea of applying to ZipList. Just over 1 month later I started my first day at ZipList on August 1st! 2 weeks later I completely finished up with all of my shoeing practice and have not touched a horse since!
The moral of the story is: BE NICE TO EVERYONE!….especially when on an elevator =) Seriously though the "secret" to getting hired as a junior developer is to simply go religiously to local Meetup groups, give short 5 - 10 presentations as often as possible without being obnoxious, and finally after the meetup has finished, go to the local "hangout" afterwards.
Source: http://joshuakemp.blogspot.com/2013/10/ ... final.html
Quote:How Can I Get Experience Without a Job? If you're in college, and your school offers programming lab courses where you work on something seriously difficult for an entire term, take those courses.
- Cracking the Coding Interview by Gayle Laakmann McDowell
- KhanAcademy - Software Developer - Intern
Quote:Along with your resume, please include:
A) Links to any projects (we really like these). We especially like live projects; please do NOT send your code.
B) A cover letter that includes why you want to join Khan Academy
C) A copy of your unofficial transcript
D) (Optional) While not required, it is favorably looked upon to build an exercise of your choosing using our open-source framework
Quote:Tools He Used To Make The Site:
http://tympanus.net/codrops/2011/11/28/ ... nd-jquery/
http://www.theimgeek.com/css-highlighter/
http://www.zurb.com/playground/css3-polaroids
http://gnrbishop.deviantart.com/art/Wood-floor-86913934
http://craigsworks.com/projects/qtip2/
http://www.mobilefish.com/services/imag ... ge_map.php
http://thinkdesignblog.com/120-handdraw ... arrows.htm
http://www.premiumpixels.com/
Quote:I suggest finding a shop (or two or three) and try to contact the programmers that work there (or the administrative assistants). Ingratiate yourself, use the internship angle, offer to sweep the floors and clean the windows and anything that gets you in the door. Then, when you get in the door, shut your mouth and absorb as much as you can, including the hierarchy (such as, what's considered an entry level position). Shake hands, smile often, be honest and respectful, and find an advocate.
[...]
I lived for a short period of time in Mountain View/Santa Clara back in the early noughts (00's), and the above was consistently the gist of what they had to say (plus some film set wisdom).How do you get a job at Cisco/Oracle/Google/etc.? Go have lunch on their campus. Often. Talk to people. Find out what they're working on. Research, be interested, ask thoughtful questions. BE NICE. Stick around. Don't be a pain, don't sulk; congratulate the more fortunate. Be persistent. Observe hierarchy.
Finding a remote job
Communities
- https://hashtagnomads.slack.com/messages/bangkok/
- I'm paying $75/yr to be a member
- https://nomadforum.io/top/all
- This is the forum
- http://nomadler.com/
- https://www.reddit.com/r/telecommuting/
- http://www.expatforum.com/
- Rec'd here
Compilations
- https://github.com/lukasz-madon/awesome-remote-job
- This has links to job boards, companies,
- https://nomadforum.io/t/can-anyone-recommend-a-platform-for-remote-jobs/6661/12
- https://jobpigapp.com/blog.html#/1?_k=ka7v5q
- https://remotebase.io/
- List of remote companies
Job boards
- Better:
- Less-good:
- Digital Nomad Gigs - Doesn't seem to be getting updated regularly.
- FlexJobs - Python - Entry-Level - Telecommuting - Not much there.
- Reddit - RemotePython - Not updated frequently.
- Sources:
Gigs
Is going back for a BS in CS worth it?
Quote:In software at least (I speak from the perspective of someone working in the private sector in Silicon Valley) experience is king. It will be very hard to get a job with a master's in Software Engineering and a BS in history unless you have some work experience that makes it look like you've actually built some software.
If all other things were equal, we'd pick a guy with a BS and two years experience writing software at a company we'd heard of over a guy with an MS and no experience. There is a fairly widely held (but not universal) belief that the reason people get master's degrees in this field is either A) they would let you into the US to go to school and you could start your job search much easier that way, or B) you weren't good enough to find a job with just your BS.
I'm not saying you definitely shouldn't do this, but in software at least, you're going to want internships and published papers (we will read them if we're considering you) and real work for real companies if you want to compete. We've turned down lots of job applicants who's work experience amounted to building "simulated networks" for proof-of-concept stuff in advanced degree programs. Only one person on my team has a masters degree, and he also worked for Microsoft Research and had a strong recommendation from a faculty member who happened to be connected with the company.
posted by tylerkaraszewski
-----
I'd take the engineering degrees off the table, if I were you. If you aren't totally and completely into them, in love with problem solving (and math), you're not going to do very well. These are programs designed to wash out the unenthusiastic and incompetent.
I did compsci for my bachelors. There were a huge number of kids in the program only because somebody had once told them that computers were where the money is. I was in the program because programming was really easy for me, and because I spent lots of time tinkering with my computer anyway. I ran fucking rings around the computers-are-cash kids, because while they did the assignments and passed the courses, I did the assignments, then did about 30-50 hours a week of extra "work" just because I was that into it. I set the curves in every class--except for the couple where there was an even more obsessive geek in attendance. And the cash-kids would ask me what book I read to get so good. Hah.
I have similar stories from my engineering buddies.
posted by Netzapper
Source: http://ask.metafilter.com/176681/Is-ret ... -good-idea
Quote:So, let’s say that you weren’t in a position to get into a top undergraduate program. One tempting option is to try to get an MS from a top computer science school to legitimize yourself on paper. If you actually are passionate about programming, I would urge you not to do that[1]. Although you will look more legit on paper, many startups are catching on to how useless an MS degree can be. Until the market catches up, an MS will probably get you an extra $10K in your base salary. However, keep in mind that you’ve just taken two years out of your life and paid some amount of money (how much you pay depends on whether you can TA while studying). Instead of going back to school, take a few months to build something really cool. Teach yourself things. Take Udacity and Coursera classes and potentially use their career placement services. Work with a recruiter whose recommendation will help you get a first round interview even if you don’t have a pedigree. Once you start working, raises you get will quickly make the initial 10K boost pretty insignificant (especially given the opportunity cost and potential tuition expenses).
So, to answer the question: BS >>> MS (if they’re from the same school, assuming you have to choose one or the other).
http://www.forbes.com/sites/quora/2013/ ... ecruiting/
Journal
This'll be a journal where I can record any thoughts I have as I learn some new programming tool.
- I'm noticing that as I make progress on the Ruby on Rails tutorial and Elenco 130-in-1 guide, I'm becoming more excited. Seeing my progress and thinking about the future things I'll be able to accomplish is really motivating me in an incredible way. I'd known what Schwarzenegger said about the importance of keeping records, but I didn't expect it to happen in this situation.
- just as with the LSAT, it seems the #1 concern a person should have is remaining motivated:
Quote:[my friend] (9:04:17 PM): I don't try to use it to get rich because it's very boring
[my friend] (9:04:26 PM): and I'd rather be trying to self-improve than to make money
[my friend] (9:04:47 PM): any type of problem solving and learning
[my friend] (9:04:53 PM): I think is more constructive
[my friend] (9:04:59 PM): then repeatedly solving things out of my toolbox
[my friend] (9:05:06 PM): acquiring the toolbox was useful but
[my friend] (9:05:12 PM): coding @ industry standards is not
[my friend] (9:05:29 PM): unless you're very very lucky and they have you fix what no one else can figure out or something
[my friend] (9:05:33 PM): or let you do whatever you want
[...]
[my friend] (9:05:53 PM): I got very bored doing coding projects at MIT because it was very
[my friend] (9:05:57 PM): "do this design document"
[my friend] (9:06:49 PM): it's also more motivating hacking together your own project
Learning Resources
Beginner-level
Roadmaps
- Undated - Peter Norvig - Teach Yourself Programming in Ten Years
- 2011.09.20 - Signal vs. Noise - Four tips for learning how to program
- Learn by doing. Work on a project you find interesting. Don’t try to learn to program solely academically, by reading.
- Do what you can. (NW: Like when you go to the gym.) Get as much of the project done as you can.
- The going is usually very slow at this phase, with lots of false starts and backtracking as I learn what works and what doesn’t.
- Posting to mailing lists or forums or IRC and asking for help are not so useful to me.
- If the problem I’m tackling is large, I try to break it into small bits first.
- This is where TDD really shines. It forces you to take the problem apart and think of it in the most atomic pieces.
- Ask experienced people to review your code and let you know what you could've done better.
- 2012.03 - Jimmy Li - Learning to Code: The Roadmap I Wish I Had Been Given
- 2016.10.24 - Medium - Melinda Byerley - Learning To Code: For My 14 Year Old Niece
- A comment I added:
Hi Melinda! I’m basically self-taught and I’ve spent a few years thinking about this issue, and the recommended path I’ve arrived at is:
Start by learning how to write simple programs that move the mouse around and send keyboard-presses; that’s the fastest/easiest way I’ve seen knowledge of programming translate into a real-world benefit for the person learning how to program (I’m a huge fan of AutoHotkey because it’s so easy to install and get started with, but it’s Windows-only). If the person is in the workforce and has a job where she uses Excel, then I would recommend she also start by getting comfortable with Excel formulas and writing simple VBA macros. If she’s into gaming, she should also try starting by learning to create mods (eg a Minecraft mod) rather than creating games from scratch. Once she’s comfortable with those I recommend learning how to automatically send emails, scrape websites, and build websites with Python and PythonAnywhere.com. (Python is my favorite programming language but IMO it has a steeper learning curve than AutoHotkey/Excel/modding before a total newbie to programming will feel comfortable doing useful stuff with it.) And from there, if she has some kind of specific situation where she needs to pick up another language, she can learn about other languages.
Here’s a video of me and my friend walking through how to use AutoHotkey: https://www.youtube.com/watch?v=7ULy4KmAYbU
- A comment I added:
Cooking analogies
- https://www.udemy.com/if-you-can-cook-you-can-code/
- http://blog.httrack.com/blog/2013/11/11/coding-is-like-cooking/
- https://solutiondesign.com/blog/-/blogs/what-cooking-taught-me-about-programming
- https://blog.codinghorror.com/programmers-and-chefs/
Visualizations
Websites
- Codecademy - http://www.codecademy.com
- CodingBat - http://codingbat.com/
- The New Boston - http://thenewboston.org/
- Udacity - http://www.udacity.com/
- WiBit.net - http://www.wibit.net/
- Misc CS Lectures - http://activities.tjhsst.edu/sct/lectures.php [the few I skimmed through were really helpful]
- Great digitized books from the Atari era: http://www.atariarchives.org/
- Type faster: http://play.typeracer.com/
- Type faster: https://typing.io/
Books
Lists
- Amazon List - Graduate CS Books
- Amazon List - Books on Algorithms
Individual books
- Great (free) digitized books from the Atari era: http://www.atariarchives.org/
- Programming Pearls by Jon Bently
- USACO Training Puzzles - rec'd by a Princeton-CS-major-turned-quant friend of mine making $200k a year
- Project Euler Puzzles - rec'd by a Princeton-CS-major-turned-quant friend of mine making $200k a year
Computer Architecture
- Computer Architecture by Hennessy and Patterson
- The Elements of Computing Systems: Building a Modern Computer from First Principles
- How Computers Work by Ron White and Timothy Downs
Introductions to Programming
- Learn to Program by Chris Pine (uses Ruby)
- Harvard's CS 50 (Intro to Computer Science) Course - https://www.cs50.net/lectures/
- Amazon Book List - History of Personal Computing Classics
- Amazon List - Rec'd Books for Common Languages
Computer Science Ideas
- Foundations of Computer Science by Aho and Ullman - now free online!
- I'm on page 11 of the Chapter 3 pdf, p99 of the book itself. It's been slow-going b/c I want to understand as much of his math notation as possible.
Bootcamps
Dev Bootcamp (dead)
- Dev Bootcamp (SF, CHI, $12k)
- This is the original bootcamp that spawned so many imitators. It was bought by Kaplan and shut down.
Coding Dojo
Fullstack Academy
Hack Reactor
MakerSquare
- Praise
- https://medium.com/@donovanwhitworth/i-attended-makersquare-in-2014-it-was-a-ruby-sinatra-rails-javascript-curriculum-then-c6e5f400cc2c
- I attended MakerSquare in 2014 (it was a Ruby/Sinatra/Rails/JavaScript curriculum then). I do not have a college degree and I got my first offer five days after graduation. There is no way I would have been prepared to get a junior developer job without attending bootcamp. It absolutely changed my life. I went from making ~$30k a year before boot to making ~$70k, and now 2 years on I’m making six figures, and even more importantly, I love my work.
I am the software engineering lead for my company (doesn’t mean I’m senior…. it means I go to meetings :p ), programming in Ruby, JavaScript, Java and Scala and still learning new things every day. I’m also getting a CS degree part-time now, which I would have never been inspired to attain if I did not attend MakerSquare.
Maybe the bootcamp experience is different now that the market is saturated, but from what I hear, Hack Reactor is a well regarded program. MakerSquare was worth every penny and more for me.
- I attended MakerSquare in 2014 (it was a Ruby/Sinatra/Rails/JavaScript curriculum then). I do not have a college degree and I got my first offer five days after graduation. There is no way I would have been prepared to get a junior developer job without attending bootcamp. It absolutely changed my life. I went from making ~$30k a year before boot to making ~$70k, and now 2 years on I’m making six figures, and even more importantly, I love my work.
- https://medium.com/@donovanwhitworth/i-attended-makersquare-in-2014-it-was-a-ruby-sinatra-rails-javascript-curriculum-then-c6e5f400cc2c
The Recurse Center (aka Hacker School)
- Hacker School (NYC, free)
- This one is hard to get into. It's like a writer's retreat for experienced programmers.
Turing School of Software and Design
- https://www.turing.io/
- 7 months, $20,000
- Praise
- https://medium.com/@leskin/i-attended-the-turing-school-of-software-and-design-https-www-turing-io-e1dde6f58526
- I attended the Turing School of Software and Design (https://www.turing.io) last year, which is a much longer program than Hack Reactor, 7 months, and now work as a software developer. I came from a non-technical industry, previously working as a journalist. Attended it was probably the greatest decision I’ve ever made and Turing is very transparent. They just released a report as well http://report.turing.io/. Turing is one definitely worth checking out.
- https://medium.com/@leskin/i-attended-the-turing-school-of-software-and-design-https-www-turing-io-e1dde6f58526
Intermediate-level
- Stanford - CS107 - Programming Paradigms
- Highly recommended by Mike Krieger here
- CS107 (Programming Paradigms) this is the class where I learned to think like a programmer, almost entirely from Jerry Cain. I still remember the assignments in this class, more so than almost any other one.
- Highly recommended by Mike Krieger here
Misc Links to Sort
- http://www.justin.tv/startupschool/b/272180383
- http://www.quora.com/Charlie-Cheever/answers
- http://www.quora.com/Adam-DAngelo/answers
Misc Thoughts
- thought: a friend had posted a link to the memoirs of a CS PhD at Stanford, and someone else had posted, "Only halfway through but it's amazing how much of his experience mirrors my own". This made me think about my zombie infection simulator and how any of those individual people could have told a story that would ring true for many of the other humans in the simulation: "I was minding my own business when suddenly everyone around me started panicking, I wasn't sure what was going on, and then a minute or two later these zombies came into view and started killing everyone". So my question is, under what circumstances does this happen in general? I'd like to have a nice clean description of the characteristics that define situations where this phenomenon may appear. For example, in the PhD example, it seems to be a result of the incentives that exist in academia among professors, journals, students, etc.