Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are you planning to learn in 2013?
59 points by anujkk on Dec 25, 2012 | hide | past | favorite | 87 comments
A new year is about to begin. What are you going to learn in this new year to improve yourself?

Here are few things I would like to learn in 2013 :

1. UI/UX Design : I'm a hacker who can make decent looking designs using css frameworks. I know I have a sense of design and I would like to take it to next level and become an expert designer.

2. A functional language : I don't know a single functional language. I would like to learn one. May be Haskell.

3. The art of selling : I am building a SAAS app for a niche and hopefully I will work hard this year to learn how to sell it to customers.




1) Math, specifically calculus and linear algebra. I studied enough of it in college to pass the classes, completely forgot about it for 10 years, and now I'm finding myself needing it for some of my coding work. I'm hoping to work through MIT's OCW Scholar class on introductory calc as a refresher, then linear algebra, then maybe something harder on the calc side.

2) Japanese. I'm trying the "kanji-first" approach advocated by "Remembering the Kanji" with practice through Skritter[1]. I already know hiragana/katakana and basic pronunciation, so after I finish RtK I should be in a good position to tackle a couple books on grammar and start reading/watching/listening to less structured content.

3) A creative pursuit that doesn't involve (or at least center around) writing code. I love programming, but sometimes it feels like I'm missing something (everything?) by having my methods of creative expression so clustered together. I want to try writing fiction, drawing/sketching and possibly musical composition, and see what ends up staying with me.

4) HTML5, CSS3 and modern Javascript. At one point in my life, long ago, I would've introduced myself as a web designer. This was back when DHTML was a synonym for Javascript, anything more complex than hover effects seemed to require Flash or Java and every site had an unholy mess of framesets and tables for layout. Fortunately for everyone involved, all of those things (and many more) have changed in the past 10 years. Unfortunately for me, my front-end skills haven't. Hoping to get up to date with stuff like JS MVC frameworks, responsive design and Less/Sass.

5) Blogging, so that I can bore other people with stories about learning the things listed above.

[1]: http://www.skritter.com/


For drawing, I've been reading "Drawing on the right side of the brain" by Betty Edwards. There's a lot of text but the ideas and exercises do seem to work. I haven't gone through the whole book but so far it's OK.


If you're not too deep in RTK give KanjiDamage[1] a try, I found it the best way to learn kanji, onyomi, some kunyomi and even picked up some useful/common jukugo - and it didn't took that much time, either (of course kanji rate heavily depends on free time/motivation).

I used pre-made deck in Anki, set up kanji in question to display stroke order on hover and used dictionaries to double check meanings/usage. I really can't recommend it enough.

[1]: http://kanjidamage.com/introduction


I am in the same boat with my math knowledge. Thanks for the heads up about the MIT courses (and Merry Christmas! :)


As someone currently pursuing a CS masters degree, I've decided I'm a little burnt out on theory and implementation, so I'm getting back into my other love: history. With 6 or 7 new books about ancient history, hopefully I can get my brain to stop obsessing over the asymptotic running time of my roomba, and how best to get c0 coverage with cat toys as a variable.


I just got my first Jr Developer job so I'm going to learn the following job related skills:

1) More algorithms and data structures

2) Get better at using recursion to solve problems

3) If I get through the first two - design patterns

Outside of work I'm going to learn about (and/or continue to practice):

1) Cooking - more techniques, flavors that work well together

2) Running, rowing, weights - correct form, improving my training program, the theory behind different training programs and why I should do certain types of work. For example: long steady state pieces vs short interval work

3) Filming videos and editing them well, in particular surfing and snowboarding/skiing

Edit: formatting - I'm trying to make lists


1) A foreign language. Maybe Spanish, but more likely French or German.

2) Perhaps how to drive. But I probably won't.

3) Modern CSS / HTML. I'm comfortable with static sites in HTML 4, but I'd like to learn about newer technology. I'm planning two sites in 2013 (one will be buying / receiving gifted Duplo, Lego, and StickleBrix to be cleaned, sorted, sterilised, and distributed to local not-wealthy children. That's easy enough for static. The other is the "alcohol awareness" game, where people have pictures of wine glasses and they have to "pour" either one unit, or pour a serving and guess how many units are in it. This is going to be lots of dynamic stuff.)

4) Enough about Linux to get a Raspberry Pi to boot in under 3 seconds. (http://raspberrypi.stackexchange.com/questions/320/what-is-a...)

5) Child development for children 2.5 to 5 years old; mostly because that's my son's age but also because it's freaking fascinating.

6) How to YouTube, because I might set up a channel doing small youtubey type things.

7) How to correctly run encrypted partitions and password managers and all that other privacy stuff. 2013 is going to be my year of reclaiming my data and keeping it safer.


ROFL, I'm scared to even answer this, because my ambitions for "what to learn" every year are always WAY too big to actually accomplish. So, basically, this year's list is the same as last year's[1] (or the year before), just with even more stuff on it.

[1]: http://news.ycombinator.com/item?id=2081336

So, for starters, the leftovers from last year:

Learn Clojure

Learn Scala

Teach myself Calculus, Differential Equations, Linear Algebra, Probability & Statistics

Dive deeper into data mining, machine learning, and AI stuff.

As it turns out, I didn't make anywhere near as much progress on any of that stuff as I'd hoped (some weird shit happened in 2012 though, so I'm not beating myself up too much).

In addition, I want to learn more about:

1. marketing / positioning / branding stuff. I'm a techie by trade (if not by nature), working on a startup and we don't have a dedicated "marketing guy" so I need to learn enough to get us off the ground at least. Luckily I actually find this stuff interesting, and I did a lot of studying on marketing stuff in 2012 (Chet Holmes FTW)

2. Sales. See above. We don't have a sales guy, so I need enough sales knowledge to at least get that first push going.

3. Influence / persuasion. Always good stuff to have in the repertoire.

4. More and more diving into "big data" / "data science" stuff.

5. More on NLP, "text mining" and information retrieval.

6. In addition to the aforementioned Scala and Clojure, I have a goal of learning some R and Prolog as well. Haskell would be nice as well.

7. Lockpicking. I learned the basics last year, but I need to practice more. I want to get a lot better.

8. Electronics / hardware hacking. I got into the Arduino scene a while back and started doing more low level electronics stuff in conjunction with that, and I'd like to continue down that path.

9. Physical fabrication stuff. I planned to start on a Mantis PCB mill this year, but never got to it. So that, and a 3D printer. A friend has a partially finished Reprap that he wants to hand off to someone else, so I may pick that up from him and start working on that.


I feel you on 8 and 9. I think those are going to shift from "fun-time hobby" skills to must-knows for anyone who wants to call themselves a legit hacker in the next 5 years.


1. Web development - go from dabbler to very competent

2. Voice - I'm about 1/3 the way through a huge singing course

3. Empathy - I want to get better at really putting myself in someone else's frame of mind.

4. Maybe pick up basic conversational skills in another human language, but this one's at the bottom because I know how much time is involved.


I've found that the best way to be more empathetic is to become a calmer more patient person. Putting myself in someones frame of mind is like taking a mental deep breath after every time they say or do something. I have to let the loop of consciousness run a few more times before allowing my thoughts to become opinions and express them in a response.

I recommend meditation. Empathy is consciousness of self and of others, consciousness is pre-frontal cortex executive function. Meditation is the expansion of self-awareness. When I was younger, sometimes after getting angry, like reeaally angry, seconds after calming down I would think "Shit, there was no reason to get that mad". It's a complete loss of self-control, executive function. The same thing happens after saying something stupid(hurtful) and then realizing it was hurtful(not empathy), if I have the ability to realize I shouldn't have said it, that means if I had just mentally waited a second or two and reassessed the thought I could have prevented myself from saying it. Meditation helps give me this time, stay calm, and assess situations(not only social) before acting. I think if scientists(if they haven't already) looked at the brains of empathetic people and stay calm in chaotic situations they would find the front of their brain buzzing with activity.


Do you mind sharing which singing course? Is it online?


I want to learn/do more with Ruby/Rails, Django, CSS. Would like to dabble with R as a way of getting familiar with "data science" tools. Would love to learn Haskell and Clojure but don't really have any specific projects in mind for them, which is usually a big impediment to successfully learning something. Same thing with Node. Also interested in Go and think there's a little more of a chance of actually doing something useful with it (maybe for a case where performance with Python just isn't cutting it).


As somebody on the verge of shipping software for the very first time and trying to make some money off it, I'm hoping I learn a lot about running a business and dealing with customers.


1. Probability

Bayesian statistics and its applications. A lot of things I want to understand like Probabilistic Graphical Models, Cryptography, and Computer Vision seem to be based in fundamental bayesian statistics I never really grokked that well.

2. EE and Computer architecture.

I never studied any EE. The more I program, the more tempted I am to get closer to the metal. It's a little weird that I tell computers what to do, but I don't really understand exactly what they do with those commands. Nowadays computers are so fast, we don't NEED to know. We're network latency bound all the time. But not knowing still feels like a big gap.

3. Visualization.

There are some crazy cool alternative visualizations out there. The remainder of the decade is going to be about visualizing data for humans as we wait for the day computers can truly understand and reason about it. I want to understand the state of the art in explaining data rather than just throwing pie, line and bar charts around and calling it visualization.

All of these are interesting to me because they're core concepts. I've learned a good bit about Node, Ember, D3, CSS3, and advanced Python in my free time over the last few months, but they're just tools of the moment. I'm getting older and I want practical CS knowledge where the state of the art doesn't change fundamentally every two years. I can pick up and put down the tools.


I'm also interested in "3. Visualization". Can you share how are you going to approach it? I'm interested in knowing what topics to cover, which books to consult, which tools to use.


I took Edward Tufte's course: http://www.edwardtufte.com/tufte/ That's interesting but most valuable is probably his books.

I was planning to read Interactive Data Visualization for the Web http://ofps.oreilly.com/titles/9781449339739/index.html I think that's mostly an introduction to the tool (D3) but maybe has some info on visualization itself.

Also, this tutorial was an easy intro to D3: http://code.hazzens.com/d3tut/ Hopefully, the author continues to add to it.

Mike Bostock (author of D3) has some interesting blogs at: http://bost.ocks.org and also some great visualizations at http://bl.ocks.org/mbostock

A PHD in my office recommended The Grammar Of Graphics http://www.amazon.com/The-Grammar-Graphics-Statistics-Comput... It seems much more technical and statistical but could be an interesting set of ideas to synthesize. I'm planning on borrowing his copy.

Mike Bostock's stuff also led me to this page on Hive Plots which is a pretty cool description of how to do network visualization better: http://www.hiveplot.com

And I like Flowing Data as a blog: http://flowingdata.com/

This is all of course prior to actually having studied it. I'm hoping using these resources and playing with some toy projects will lead me down further paths. (Assuming I have time which I, of course, probably won't.)


I've also been getting my hands dirty with a bit of Data Visualization lately, and have been going through the following resources:

* https://graphics.stanford.edu/wikis/cs448b-12-fall/

* http://ocw.mit.edu/resources/res-6-009-how-to-process-analyz...


In no particular order...

1) Cooking. I have a few standbys that I can make on a regular basis, but I'd like to expand a bit and find some more dishes both my wife and I enjoy. (She's a vegetarian, I am not.)

2) Systems / low-level programming. Mostly for my own amusement, but I'd like to have a better understanding of operating systems and how software interacts with hardware in general.

3) Improved parallel programming. I'm an HPC sysadmin and I am good enough with parallel programming to get by with helping debug users' code, but I'd like to be a lot better, especially since I often interact with complex applications that scale to thousands of nodes.

4) Math and physics refresher. I have a B.S. in Physics but I've been in computing for a while, and I'd like to re-assure myself that I know about more than computers. :) I plan to spend some time on old books, notes, and problem sets for both basics (Mechanics, EM, Quantum) and some favorite subfields (solid-state).

5) Machine shop skills... probably take some classes at the TechShop in San Jose.

And of course, just about anything I see that I think looks interesting in the next year. :) Be interesting to look at this list again next December and see what I actually did.


Other than improving my programming skills and learning a bit more computer science theory in general:

1. Music. Learning to play the piano

2. Drawing and Painting

3. Cooking


For drawing, I strongly recommend Drawing on the Right Side of the Brain. And you DO have all the skills you need to get started as long as you have remotely decent eye-sight and the ability to wield a pencil. The important thing is to force yourself to let go of iconic representations and look at the lines that are actually there. It will be uncomfortable, but once you do that, your progress will really begin.


I can second this. I'm your typical average terrible drawer.

Stepping through the first quarter of this book, following the exercises and going from being able to draw a barely recognisable stick figure to an actually respectable drawing within 50 pages was an amazing experience.


Start with cooking that will help you understand Piano and Drawing better.


Care to explain how?


Cooking really is about process, proportion, texture, color (taste), color (presentation), balance, contrast, seemlingly unrelated items coming together creating new experiences.

It will help you understand these terms in music and art more naturally while at the same time being easier to get started with (i.e. you have the skills necessary to create a dish more than to play the piano and draw)


Oh, thanks. I'm a pretty good cook, or so I've been told, but I'm really into improvisation. Not sure how much of that would carry over to art and music. I have an intuitive sense of flavours that work well together, but I haven't been able to translate that to playing instruments.


Then you should be fine. It's the intuition that makes the artist.


1. Japanese, at least enough to navigate some Japanese websites 2. Some design sense. So that my weekend projects doesn't look like crap without bootstrap. 3. More maths. I am rather surprised how lacking my math is for doing some serious programming tasks. 4. Python. there are more, but i think i should focus to these,


On behalf of all my Japanese friends, glad to see #1 on your list. Highly recommend traveling there: nothing like immersion to build a skill!


1) UI/UX: I've done too much javascript server-side to pass on the opportunity to apply my knowledge to client-side technologies and make (visually) awesome stuff.

2) Blogging: I learn too much stuff to not pass on that knowledge.

3) DreamLeaves: I've had this "group" of mine on hiatus for too long. I need to build a functional platform to showcase all of our works and make all of us "rockstars" in our respective fields.

4) Marketing: "You dev guys, you got gold in your hands!" always say a friend of mine (let's say he's a "bank-guy"). Bad news though is, I could make the next facebook/instagram/w/ever, I wouldn't know how to distribute/advertise/sell it properly.

5) More time outside of code. Today, my life is split between coding for a job and coding for a passion but even those two are still centered around the same project.

But all this would be naught without... n+1) Follow a schedule.


Vert.x

I want to solidify my Scala skills with real world projects beyond testing. I have one about 3/4 done. I am interesting in seeing how it goes when it makes contact with the real world.

Marketing, marketing, marketing.

That should pretty much take up this next year, at least.

In my free time, I will try and get my guitar skills beyond 4 chord songs.


I'm doubling down on EmberJS. Paired with rails-api and active_model_serializers, it hits a sweet spot for me.

I'm planning on doing some substantial renovations in my home so I'm excited to learn more about how things are built.

Finally, I'm determined to learn how to cook well enough to impress people.


I learned how to program in Haskell. Although Haskell is hard, learning a language is still relatively easy compared to writing good 100KLOC+ sized software in whatever language.

In 2013 I hope I will figure out how to write good software in Haskell by writing good software in Haskell.


1. How to say no more often when working in a team - I need to be a better delegator

2. Scala + Play Framework - Java shop, I'm sure this will help long term

3. How do disconnect once I get home from work - I spend too much time online... I need to unplug once in a while


For me it is more about improving rather than learning something new, except for one...

1. Improve/revisit my german.

2. Improve my cooking skills.

3. Improve/augment mobile development skills (iOS/WP8)

4. Learn the harmonica. It has been sitting on the shelf too long.


Well as I just bought IntelliJ IDEA in the JetBrains dooms day sale Java (and Android) is number 1 on my list. Along with a bit of C++11 later in the year. I think I will also learn the basics (maybe a little bit more) of Python as well as I have been putting it off for a couple of years now.

In general I want to move away from Windows and more towards Linux as my development environment as much as possible. I have no real problem with Windows but I would like to feel as comfortable in the Linux desktop world as I am on Windows.


1) Node.js, express, socket.io

2) How to build a networked multiplayer game with above technologies. Possibly using impact.js or other game library.

3) How to draw sprites, character concepts, backgrounds for 2d Game.

I've always wanted to become a respectable artist, but the ability to draw was never enough of a motivator to make me really dedicate myself. Building a small mmo that others can enjoy and play together lets me become a better programmer, as well as gives me a reason to draw and exercise my creative side that I can really get behind.


1. sed and awk;

2. To use vim competently;

3. To touch-type;

4. Perl;

5. Polish;

6. To stay offline on Xmas day.


Out of curiosity, why Perl?


Plenty of reasons to.

sed, awk and Perl practically don't have any competitors in their stride.

When you learn those tools, you basically realize that all the while you were using a hammer, while what you should been using is a screw driver.


I'm planning to learn Perl for a combination of its ubiquity, the cheap O'Reillys I came across recently, and contrarianism. Kamaal's answer also covers it really well.


1. Learn agda and Coq, read Pierce's Softw. Foundations and Chlipala's book

2. Find a teacher for clarinet and/or cello; keep working through Well Tempered Klavier preludes


I feel I'm running the risk of repeating the standard HN response for this type of question, but here are my goals for this year:

* Greatly improve my functional programming

* Learn Japanese


Another list with Japanese language skill as a goal, love it. Highly recommend traveling there, it's wonderful and confounding at the same time.


1. Enough Spanish to be useful for travel

2. Salsa dance

3. Bayesian Statistics

4. Julia (julialang.org)


Español - Estoy aprendiendo hace 3 meses con los websites Duolingo.com, italki.com, anki y otros. Espero que en un año puedo tener buenas conversaciónen con hablantes fluidos.

There are some really interesting emerging ways to learn a foreign language also an emerging community of language learners and polyglots on the internet.


As a native Spanish speaker: DuoLingo es muy bueno para principiantes! ... some parts of Spanish are simple (acute accents rules are not hard) but verbs are terrible (compared to how simple they are in English) but there's plenty of material to study. Best of luck!


I will try to learn:

1. A programming language.

2. A natural language.

3. Work/Life balance.

4. To enjoy my life.


1. Haskel

2. Rails

3. Typography theory

4. Statistics

5. More political philosophy

6. More arcane photography methodology/techniques

This is all in addition to the general academic edification entailed by high school.


What encompasses typography theory? Like semiotics / linguistics or something more specific to web font use?


1. Music, theory and practice. I'm currently experimenting with the bass guitar, acoustic guitar and electric piano.

2. CS theory. I'm a fresh ECE grad and our program was light on CS content. I plan to work through Daume's "Yet another Haskell tutorial", Downey's "Complexity" and SICP.

3. Ballroom dancing.

4. German refresher course.

5. Improve my design skills.


Planning: all the things I was supposed to learn in 2012..(2012 - [self age]).

Actually learning: whatever I feel like.

I am hoping to land:

1. Electrical Engineering

2. Smalltalk

3. Photography

4. Wood and metal craft

5. Higher math


I gotta learn how to make this go viral :O

http://www.lootitooti.com/


that's hilarious, esp the looti tooti version :)


Thank you :). It's just a silly project for a laugh.


1. Javascript templating like mustache and dust

2. Webgl and three.js

3. Websockets and node

4. Phonegap and mobile development

5. Math geared towards game development


HP 50g RPL (calculator stack language - lisp like).

Maths refresher including statistics.

How to grow mushrooms (not dodgy ones).


* To learn and get a deep understanding of Go (golang) * To find a project thay excites me and that I believe I will be able to sell. * Meta-goal: to set adequate goals for myself so that I can keep learning, working and building without burning out.


Learn commercial hardware design & distribution, especially UL (TUV?) certification.


For me: Python (Advanced): Django/ BeautifulSoup Clojure Android JQuery

Improve my Japanese/Mandarin


1) CFA Level 1 and start CFA Level 2

2) Skiing

3) Improve my knowledge of stochastic Calculus as used in finance


Node.js - I've been doing only client side js for a long time (mostly via rails). Being able to do the client and server side code in the same language sounds really intriguing.


1. pipe welding, all positions 2. yoga 3. fingerpicking


+1 for pipe welding


Cocos2d-x and CocosBuilder. For making relatively simple iOS games that I could port to Android and Windows, is there a better choice?


I am a programmer.

Will improve on: 1. Clojure 2. Enrolling in a design course at Berkeley 3. Learn better management of money 4. Understand business


1. Dvorak

2. Emacs

3. Clojure

4. Testing from a keyboard


Unless you are dead-set on dvorak, look into colemak. It is much easier to learn vs dvorak and keeps many common keys. Mac OS X and modern linux distros have it built in as well.


Xavier Shays diary on switching to Colemak: http://rhnh.net/2006/09/18/the-colemak-diaries


Android development Ruby Better Java


1) How to play the piano 2) How to make VSTs 3) How to sell software (potentially as a service)


1. Clojure: I should have learned this year(studied some, though).

2. Study more design patterns.

3. Some haskell/erlang.


1. German 2. Rust 3. UX/Design


1. How to make the most of my Raspberry Pi

2. Farsi

3. Touch-typing

4. Business Unit Management

5. Knitting and clothes-making

6. Ceramics (fine art and stoneware)


Amateur robotics and radio!


improve my drawing skills.


I plan to become an expert on adaptive clinical trial design.


More Scala and Akka


SWITCH, ROUTE, TSHOOT, NX-OS, ISE, JNCIA


iOS programming.

Machine learning.

Open source contribution workflow.

Advanced Algorithms from various websites.


Python.


Erlang/Haskell

Acoustic Guitar

Drawing

Exercise

Mobile Game

B2B app


D3 and R


Hardware and electrical engineering. I want to build an electronic cigarette with a tiny computer in it.


I really want to begin to learn this too, any ideas where to get started?


My usual response to this is to suggest that people get "The Art of Electronics" and "The Art of Electronics Student Manual", and then some cheap equipment and components, and then work through both books.

Some of the books are severely out of date, but much of it is still useful and they're great introductions for smart people to electronics.

And nowadays you don't even need real equipment, you can probably find excellent simulations and virtual equipment.

Along side that you probably want to learn to solder well. (http://www.astro.umd.edu/~harris/docs/WellerSoldering.pdf) is a guide from Weller. This is a bit old, because it doesn't cover no-clean solders, or low-lead solders.

Hopefully other people have some more up-to-date information.


1) Microsoft Bob 2) OS/2 3) Apple Lisa




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: