Ask HN: 11 days off for Christmas vacation – What would you learn?

47 points by lsiunsuex ↗ HN
My day job strait up closes from the 24th to the 1st - including the weekends, we're off for 11 days! (fully paid no less - awesome perk!)

Other then family get-togethers, what would you learn with your time off?

I bought some Swift courses from stackskills.com last week but I need it more as a refresher - I'm pretty decent with Objective-C as it stands and the Xcode tools so I got it just to get up to speed on the new language.

I'm very proficient with AngularJS 1.x, html, css, javascript, jquery, php, wordpress, server administration / linux, pen testing, etc...

Maybe React? Scala? (if it's there)

Docker?

72 comments

[ 2.9 ms ] story [ 133 ms ] thread
Build an MVP in 2-3 days, release and market. You'll learn a lot about business :)
i have been kicking around an idea for the last 2 months; it's been on hold due to time constraints (day job / my own side project thats been going on for 4 years now / freelance)

got it to the point where i bought a domain, setup the server and laid out the layout / initial feature set.

I could definitely build it in 2-3 days if i sat down and focused.

I plan to play around with D3.js library. I love to play with drones. I want to produce beautiful visual charts to display many drones stats while it is flying.
React sounds good, I've been wanting to watch https://egghead.io/series/getting-started-with-redux
The one thing I would advise when learning React is to learn React and then learn some variation of flux. It really helped everything set in for me.
Definitely agree on this. I jumped straight into trying react, react-router and the fb version of flux at first but ended up jumbling all the concepts together.

You can get so, so far with just react alone it's ridiculous

(comment deleted)
Learning docker was a great way for me to spend my three extra vacation days... then I discovered ottoproject.io.
Learn to take a break.
Or at the very least learn something new that is not directly related to work.
Build an API in Swift :p Then learn some good React/React-Native to display something simple in a iOS/android native app powered by the swift API.

Also, building an MVP in under a week and seeing how far some simple online marketing can take it is always fun.

Clojure, ClojureScript, and Om + Emacs/Vim
Swift and Go would be the two things I learned. Or I'd work on a side project for residual income.
A couple of friends of mine and I have agreed to go through the first few lectures of this still super-relevant and foundational machine learning class:

http://openclassroom.stanford.edu/MainFolder/CoursePage.php?...

Why not join us with Swift implementations of some of the discussed algorithms? Simultaneously, you could also experiment with some of the cool, puristic functional programming libraries recently coming up for Swift. Check out awesome-swift:

https://github.com/matteocrippa/awesome-swift

In any case server side application of machine-learning has its drawbacks in terms of privacy, reality of losing internet connectivity, etc.

Hit me up on twitter or github if you are interested.

Have fun and happy holidays (don't forget to relax) :)

ML, Haskell, Idris, or Prolog.

Because these languages will challenge your problem solving abilities and should improve your overall skill in writing code in any language.

If market feasibility is really your thing, then Clojure or Scala for similar reasons.

It look some deep investigation in Haskell for me to get fairly dangerous with Scala. (There are weird type system gotchas in Scala that can seem insurmountable at first which Haskell does a better job of encapsulating.)

What sort of application might be good to build for learning ML?
There is a text book _Discrete Mathematics and Functional Programming_ (VanDrunen) [1] which can be bought off Amazon for $60 new. (I bought a used copy when they were cheap, for <$30.) Its a great place to start.

There is an older version of the manuscript available if you scour Google.

Then there are also the videos that accompany the text book, which can be accessed by anyone. [2]

Because learning a language like ML is for the express purpose of thinking differently its likely beneficial to learn the language in a domain you might be unfamiliar with - possibly somewhat academically, instead of building an application from scratch. ("Oh I know how to solve this problem... I'll write an if-then-else statement with a bunch of branches!" vs. "Pattern matching in a case statement? List deconstruction and matching? This looks interesting.")

1. http://www.amazon.com/Discrete-Mathematics-Functional-Progra... 2. http://cs.wheaton.edu/~tvandrun/dmfp/

Recurrent Neural Networks. They're so cool. Used in everything from creating chat bots to describing pictures to machine translation. Bengio and Goodfellow have a preprint book available https://goodfeli.github.io/dlbook/
Me personally, I'd unplug from everything and only allow myself like 30 minutes each day to check for any critical emails (like oh shit type emails, ignore the normal ones). Then I'd spend my time talking to real people and find things where people are frustrated where I might be able to make an impact. Basically, spend the time learning from them and spending time understanding problems they have (not Dr Phil style of course, but everyday crap). People hacking (for learning) in a sense.

But assuming you don't need/like that then here are another few ideas:

1. Learn the basics of how to architect a small distributed system that is fault tolerant, resilient and reliable. You can't learn it all in 11 days, but man you can make a big dent and it is to me one of the most fun and challenging problems to solve. And there is still so much to learn. You can build and test little systems in AWS for nearly nothing using t2 instances.

2. Do as iqonik suggested, find a simple need some group of people have and solve it with an MVP and start marketing and playing with it. If it goes nowhere but you solved an interesting problem for even a small group of people you will still feel good and have had some fun.

3. Write an Android app. From the looks of it you haven't done that but it seems basically up your overall skill set and something you could have fun with. Even if you "hate" Android learning how it works and the good/bad sides might help you in other places.

> 1. Learn the basics of how to architect a small distributed system that is fault tolerant, resilient and reliable. You can't learn it all in 11 days, but man you can make a big dent and it is to me one of the most fun and challenging problems to solve.

There was a great tutorial for something like this that google published last month using kubernetes and docker that involves setting up several minecraft servers in a cluster. Would be a great into to docker/kubernetes

http://googlecloudplatform.blogspot.com/2015/11/containerizi...

I've been wanting to setup a small distributed system like this as a project for a long time, but struggle to find something that would be useful to build (even to a small degree).

Personally, I don't play Minecraft (and, thusly, couldn't really appreciate what I just did by setting up a super duper Minecraft server system).

Could anyone think of some more general purpose distributed systems projects that would be a little more generally useful?

I dont play minecraft all that much either, but you could probably replace mincraft with some other networked service, maybe a database simple web server?

Database roulette sounds less than useless but still would be a good way to learn

> Learn the basics of how to architect a small distributed system that is fault tolerant, resilient and reliable. You can't learn it all in 11 days, but man you can make a big dent and it is to me one of the most fun and challenging problems to solve. And there is still so much to learn. You can build and test little systems in AWS for nearly nothing using t2 instances.

Learning about distributed systems of late and been wanting to do this for a while now. Do you have any project ideas? I can think of implementing a key-value store.

Some project ideas:

1. Implement a leader election algorithm and play with the fault tolerance.

2. Implement Raft and learn about it, good and bad.

3. Implement a logging application that has to meet all the requirements for a good distributed system. e.g. log from anywhere, always available, etc. This sounds easy until you actually do it.

Alternatively, study code from memcached, redis or some other open source distributed software where there are known good and bad things. Cassandra is another one you could study.

How about Ancient Greek? No kidding - that's what I'm working on this break.
Sounds cool-- what are you reading?
Let's just say I started yesterday, and I'm already happy that I can recognize all the letters by now. "Reading" as such (in the sense of reading a book) comes later ;-)
Oh you're literally reading ancient Greek. I thought you were reading history about that era. ;)
I read Koine/Classical/Homeric Greek reasonably well. Message me (e-mail in profile) if you have any questions.
Thanks for the offer! I'll bear it in mind.

I found a book at the university library that aims to teach Koiné as if it were a living language - i.e. instead of translating Euclid et al. from the get-go, one starts with simple life-like conversations; also listening and speaking are included in the curriculum. I'm working my way through that at the moment.

I'm in a similar situation and I'm planning on dominating in Stockfighter during that time :-)
React, React Native, ClojureScript

HaskellBook.com

Buy a fiddle. Learn to play it.

Seriously. You just got off work, and you want to go back into learning more tech? You do know about the breadth of human experience right? Unplug, read a good book, watch movies, learn to cook Indian food, go skiing...

How vulgar is a life that must be productive at all times.

Oddly - I find remodeling / manual labor to be very relaxing - the last 12x12 bedroom in our house is begging to be gutted and remodeled.

It's amazingly relaxing and quite the workout throwing a hammer into a plaster and lath wall and just doing demolition for 8 hours.

Painting a room, too, is relaxing - which is on my list of stuff from the wife to get done.

True, just play the radio in the background, go at it, and unwind. Really is a great relaxing effort.
I often feel that the American programmer would profit more from learning, say, Latin than from learning yet another programming language. -- Edsger Dijkstra https://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/E...
Sam's teach yourself Latin in 30 days
As someone that knows both latin and classical greek, I can't say that it helped that much. The interesting stories are all translated and very little time is spent on vocabulary as opposed to edge cases in verb conjugation.

If I had to do it over I would have learned mandarin.

This sounds like a very practical lesson that more programmers should understand.
Yep, I took latin for 7 years, I can't think of one thing it has been useful for. It didn't even help me to learn Spanish later.
How to play on ocarina.
Oh my wife learned to play it a couple of years ago. I like it but her daughter really super hates to hear it. ha ha
I'm working on Elixir this break. Whatever calls your name.
If you are already pretty proficient in coding, I would take a break from it and instead learn something different.

  - Sport (Snowboarding/Skiing/Swimming, Climbing etc lessons)

  - Reading books (History, Biographies, etc)

  - Visit a new town (doesn't have to be too far) and hangout with complete strangers and learn their stories.

Or purely on the STEM side you could refresh yourself on probability, statistics, linear algebra and get a deeper grasp on machine learning/data science.
+1 for snowboarding

I like to go distraction-free and put my phone in a locker. For a few hours it's nothing but you and the mountain. And energy drinks.

(comment deleted)
My wife and I just bought a banjo, I plan to take some time this week and next to learn it. Then I'm going to hang out with fellow mandolin players this Sunday or next. I suggest you do the same, or something similar. You'll be more rounded as an individual than if you learned the-next-hot-shiny. Plenty of time for work stuff after the holiday break.