Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: 11 days off for Christmas vacation – What would you learn?
47 points by lsiunsuex on Dec 23, 2015 | hide | past | favorite | 67 comments
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)


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


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.

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...

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.

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/

http://neuralnetworksanddeeplearning.com/ is also a decent introduction about neural network. Doesn't cover recurrent neural network though.

do you have any good intro tutorials?

A chatbot that could receive pictures and describe them back would be pretty cool!

I would learn to connect more closely with my family and friends. Do some maintenance on your relationships. You may find down the line that the longer you wait to invest the kind of time you have right now, the less effect it might have.

I would suggest you do something much more comprehensive and do this: https://www.coursera.org/learn/learning-how-to-learn

I've never taken any course that was more useful and a lot of other people feel the same way.

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.

Learn to take a break.

Or at the very least learn something new that is not directly related to work.

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 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.

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/

React sounds good, I've been wanting to watch https://egghead.io/series/getting-started-with-redux

yeah, this has been at the top of my list. I found a good tutorial a while back I have been meaning to go through showing how to build a character voting app (inspired by facesmash) for EVE Online characters.

It shows how to build a full stack app using React,Flux,Mongo,Node,Socket.io


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

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.

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.

Learn about yourself and the answer will come. Learn to meditate. Learn to run. Learn wine tasting. Learn to sew. Volunteer. Go to the zoo. Hang out with friends and family.

Learn who you are, what you enjoy, and where you want to go with your career. Technology stacks change more often than I buy new shoes. Is that a reflection on the technology or the shoes?

I see Mobile development, web dev, FP, and devops technologies in your list. What excites you?

Instead of specific languages, what about learning new concepts? Learning about functional programming will change how you program in other languages. Studying algorithms will change how you think about efficiency. Reading books like "The Pragmatic Programmer" or the classic "Mythical Man Month" will give you a bit of a higher-level understanding of what it is we do.

Idris (http://www.idris-lang.org/).

Edwin Brady is working on a book that you can access via the Manning Publications MEAP program (https://www.manning.com/books/type-driven-development-with-i...).

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:


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:


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) :)

Given your skillset, I'd pick React over Scala or Docker. If you're into PHP/Wordpress, you could also look at Drupal 8, which was just released. Given your CSS/JSS/Angular skills, you could also look at Meteor for apps.

All that said, from a blank slate perspective, I'd suggest learning Phoenix (http://www.phoenixframework.org), and in turn Elixir. Phoenix is great framework for building moderns apps, in that it's open source, database & frontend agnostic, leveraging the battle-tested Erlang VM, highly scaleable (WhatApp built w/Erlang), and real-time (via Channels). Good overview video here: https://vimeo.com/131633172

Learning docker was a great way for me to spend my three extra vacation days... then I discovered ottoproject.io.

would you mind elaborating what your use case for docker was and how otto may have replaced it?

We have been using docker for running challenges for a CTF platform [0]. Check out this blog post [1] for details on how docker fits in.

[0]: https://backdoor.sdslabs.co

[1]: https://ashishchaudhary.in/dockerizing-a-ctf

Hang Gliding or Paragliding. It's important to keep yourself busy with hobbies that are not related to tech at all. Enough hours you spend sitting behind a computer doing your job and coming back home to sit some more to code on your own stuff.

Go out and get some fresh air.

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.

I'm working on Elixir this break. Whatever calls your name.

https://scotch.io/tutorials/building-a-slack-clone-in-meteor... Building a Slack Clone in Meteor.js: Getting Started ... ya know... for fun. and binge watching falling skies

I'm trying to get into 3D modeling. I wrote a novel one year for NaNoWriMo, and I've recently started wanting to convert it from text into an animated short.

So, Blender, and other things. Trying to relax as well...but I can't do nothing.

I'm in a similar boat as you and my list this year is is Docker, gitlab-ci documentation and getting started on a personal project I want to do.

Mostly docker and gitlab-ci is on the list because I want to use them in development.

If I were in your shoes I'd keep the momentum going with swift. Otherwise React seems like a nice complement to your skills.

I think for myself this holidays I'll be tearing into Elixir and React for a new project.

What do you want to make? Make that. Don't learn another language just for the sake of learning one.

For example, o you only know Objective C and want to make a web app? Then learn a web programming stack.

I'll try to teach my self English, to pass exam. So many holes to path from school years.

Maybe any body know good resources? Like "English for Hackers" or something similar?

I read emberjs's guide last night and play some toy example.

I think ember-cli is great and have good first impression overall, would like to build a more serious project in these days.

I'll enjoy learning Scala and dig some new machine learning resource on the Web. I can advice you the Prf. Andrew Ng's Machine Learning course on Cloudera.

I mean Coursera of course!

I plan to hunt for business problems this break. That for me is harder than learning a new language or technology stack.

Clojure, ClojureScript, and Om + Emacs/Vim

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

Swift and Go would be the two things I learned. Or I'd work on a side project for residual income.

How about Ancient Greek? No kidding - that's what I'm working on this break.

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.

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. ;)

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

React, React Native, ClojureScript


want to do something with AI

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact