I like this stretching routine: https://phrakture.github.io/starting-stretching.html
Interestingly, it's written by Aaron Griffin - the former Arch Linux lead dev.
HN user
drake.mattc@gmail.com
I like this stretching routine: https://phrakture.github.io/starting-stretching.html
Interestingly, it's written by Aaron Griffin - the former Arch Linux lead dev.
Hey, I worked through this same question for myself when deciding how to move from data analyst -> software engineer (all the way down to the same OSU program!) and decided that the tradeoffs were worth it. I had enough CS credits from my first degree that I was able to finish the program in one year, so that made the decision easier.
What you get from the program will depend on what you put in. The program itself is solid, but you'll definitely need to work on your own to become hireable - mainly leetcoding, real world projects, etc. I would highly suggest taking the more rigorous classes. There's an active slack that helped me to make friends, debug code, and workshop ideas.
All in all, it was worth it for me. It helped me get a job at Intel after graduation, so I guess it was a success.
I wrote a bit about my decision to do another degree on my blog, in case you're interested: https://mdrake.sh/blog/whats_next/
I'm also down to answer any questions about my experience in the program :)
Here's how I switched from data analyst -> software engineer. I don't do much DevOps, but maybe it'll help anyway. To avoid qualifying every statement, just pretend I wrote "in my experience" or "for me" after each assertion.
As a prereq, try to make sure you enjoy the field you're switching to. This seems obvious, but I've met people that didn't. Learn concepts and build projects in your target field to make sure you're actually interested. I built some silly projects with Node & React, learned enough C#/Unity to make awful 2d games, and solved Project Euler/Exercism puzzles. I started 20x more projects than I finished, but finishing isn't really the point at this stage - you're just aiming for exposure. Once I knew what I wanted, I made a plan and started to execute:
1. I positioned myself to program as much as possible at work. In my org, this was easy - most analysts were already writing Python, R, or SQL every day. I took every opportunity to work on projects where the deliverable was working software instead of a slide deck. Almost every data analyst chose the opposite - so there was little competition for these projects. For example, I ended up being able to debug and fix a production C++ application, just because everyone else avoided the task and I offered to try. This step lasted about 1.5 years for me.
2. I learned and built things in my free time. I read books, watched tutorials, did algorithm MOOCs, etc etc. If I had to do it again, I would spend 1/5 the time (or less) following step-by-step tutorials. They definitely helped (especially with "unknown unknowns"), but stumbling through the silliest of projects helped me retain so much more. I did this in parallel with step 1.
3. I did a CS degree. I detailed my cost-benefit analysis in a blog(1), so I won't regurgitate it here. I don't think this is necessary, but being able to apply to new grad SWE jobs was a boon. I tried making the switch before doing a CS degree and got filtered at the resume stage almost every time. I think degree gatekeeping is dumb, unfair, etc. but it is a real problem constraint that you should consider.
I hope any of this helps. It has been a lot of work, and a lot more work to go...but I'm 100% sure I made the right choice. My email is in my profile if you think there's any help I can offer. Good luck!
Some methods I use:
- Spotify's "Discover Weekly" playlist - it's hit or miss and it gives me a lot of stuff I know about (and have listened to on their platform!). But, they also send me some cool stuff I haven't heard about.
- Genre specific subreddits - broad ones like /r/music aren't great, but more niche subs have a lot of good recommendations.
- Friends that also love music and know what I'm into - this one has the highest signal to noise ratio, by far.
This post helped me (and many others here, I'm sure) learn about salary negotiation: https://www.kalzumeus.com/2012/01/23/salary-negotiation/
I've been falling asleep to a podcast called "Sleep With Me"[0] for the last two years or so. For most of my life, I've had a lot of trouble falling asleep thanks to a fun combination of anxiety and an overactive mind. Thanks to the podcast, I fall asleep within ~20 minutes of lying down almost every day.
In each episode, the affable host tells a story (or reads a catalog, or recaps a Star Trek episode, etc) in the most meandering, boring way possible. It sounds weird, but it's just interesting enough for me to stop thinking about other things - but not interesting enough that I want to stay awake. I highly recommend it to anyone that has similar problems.
Sorry if it sounds like I'm writing ad copy for the show, but it literally changed my life for the better.
HN has monthly "Who is hiring?" threads, you could post there
Interesting! I have degrees in CS and economics, and my experience was that the business school was dramatically more "bro-y" than the CS department. Not doubting you, just really surprised!
Thanks for the recommendation! Several friends have also told me about this game - I think I'll go ahead and order it now.
My wife and I have gotten a lot of mileage out of playing these 1v1 games:
- Twilight Struggle
- Hive
- Patchwork
Choosing one really depends on mood. Twilight Struggle is the kind of game you have to buckle up and commit to playing for a while, but it's worth it. Hive and Patchwork are more bite-sized - both have enough complexity to be interesting, but with a much lower time commitment. You also have to refer to the rulebook less often with those two games. :)Thank you!
Do you have advice about where to find startup jobs?
I know about HN's "Who is hiring?" post but I'm interested in other sources too.
This was my experience working in data science. I was extremely unhappy with the impact/results that I was able to deliver in my organization. Almost all of my analytics focused projects ended with a presentation to executives who promptly forgot about it and made decisions based on intuition anyway. It's draining to repeatedly push and push to a finish line that has no impact other than self-aggrandizement. Again, maybe this was just my organization - I'm not making statements about data science as a whole.
Over time I found that I love coding/delivering useful solutions to users - so I gradually positioned myself onto progressively more pure dev projects. I'm starting my first "real" software engineering role in a couple weeks, and I couldn't be more excited. :)
I have had two engineers in the last few weeks tell me that my (correct) interview answers were wrong. It's extremely frustrating feeling to be already stressed from an interview and then deal with this on top.
In one case I argued for a while until we moved on. In the other, I was able to show the interviewer why I was right and they eventually saw my side. I'm not sure if this was poor communication on my part (definitely possible!) but I felt helpless. Still, I don't think I'd be able to intentionally say an incorrect answer just to get the job.
Wow, that is an incredible deal. How did you hear about the sale?
You can purchase used Steelcase chairs from office liquidation companies for a reasonable price (although "reasonable" might be in the eye of the beholder). I purchased a V2 for around $400 and have been using it daily for 1.5 years. It's in great condition and it's easily the most comfortable office chair I've sat it.
Graph databases are used by the IRS for (at minimum) detecting "patterns of abusive tax transactions"[0] and tax fraud[1].
The IRS also recently contracted Brillient to "define and prototype a graph database for the individual taxpayer"[2]. This is supposed to "enable IRS researchers to visualize complex relationships to improve compliance and enforcement."
[0] https://www.irs.gov/pub/irs-soi/09rescongraphquery.pdf
[1] https://www.aaai.org/Papers/Workshops/2005/WS-05-07/WS05-07-...
[2] https://www.brillient.net/news/brillient-awarded-new-task-or...
That makes sense, thanks.
This is insightful, but I fail to see how:
While we didn’t exactly market directly to kids, we knew that they were buying.
squares with:
Every time a kid has 25p to spare, they have a choice. They can choose to buy a chocolate bar, or they can choose to buy a ringtone. Our job is to encourage them to buy digital goods, rather than sugary treats.
You can also refer to these as "external economies of scale". DC and politics/government seems like a clear pick. High Point, NC used to be one for furniture. [1]
Wasn't Michigan one for the automotive industry? I don't know that for sure, though.
[1] https://en.wikipedia.org/wiki/High_Point,_North_Carolina#Evo...
Veteran's Day is November 11th, just FYI.
Very cool, I will check this out. Thanks!
Do you have advice on learning AWS/cloud for people that don't know anything about it? I have a Django/React project I'm hacking on where everything runs locally, but I don't understand how to put this thing on the real internet.
Wow, I just finished the first level and I can already tell that I'm going to love this game. Tightly crafted puzzle games are my favorite genre - thanks for mentioning this one.
― Friedrich Nietzsche, Beyond Good and Evil
In case anyone is interested in the source.
I registered my domain via Google Domains for $12. I write content in markdown and use a static site generator called Hugo to turn it into html. I host it on Netlify for free.
My process is:
- blog in markdown
- add a commit
- push repo // This builds on Netlify
The new content is live within minutes. I have also used Netlify to host a static html landing page that I wrote and styled by hand. I would highly recommend their service. Again, my only (monetary) cost is $12 per year via Google Domains.
Most online courses I’ve taken (university or MOOC) were not improvements over simply reading the textbook/source and doing the published exercises. I have taken a handful of online courses from “real universities” and they have all been atrociously bad. Some MOOCs I have taken have been much nicer (Ng’s Machine Learning stands out). Courses on platforms like Udemy seem to almost uniformly consist of regurgitated documentation. Maybe that’s helpful for someone (or they wouldn’t be so popular (?)), but I find video to be a slower and less dense form of info transmission.
The main thing I find annoying is that most of the courses I’ve tried don’t leverage the interactivity available to them. The exercises don't seem to have the right level of challenge to enable flow. In college, I took a linear algebra course with lectures on one day and group work on the other. On the second day, we’d have a difficult application problem of whatever we learned earlier in the week. We’d break into groups (small enough that you couldn’t hide) and work through the hard problem together. Each time, I’d leave the class feeling like I had truly gained a deep understanding of the subject matter.
In contrast, most online courses (if they have exercises at all) seem to be of the form: show pattern, change obvious detail, ask for obvious implementation. I haven’t found a lot of exercises that actually require a stretched understanding of the material to get through. Maybe this is optimized to mitigate huge drop off rates in MOOCs - easy problems keep people around longer. But, that doesn't really create a valuable learning experience.
I believe the poster meant to link to this:
https://www.channelfireball.com/all-strategy/articles/how-to...
Certificates act as a great filtering mechanism for developers - if a company highly values them, the dev should skip that job application.
Seriously though, placing high value on industry certs is a red flag that they don't know how to hire devs. I don't know if that's a variable worth optimizing for.
Heads up, your resume link appears to be broken.