Hacker News new | comments | show | ask | jobs | submit login

Life: Quitting a stable software job to do a PhD in Finance. The additional technical skills (Writing, Mathematics, Finance, Law, Accounting) and interpersonal skills (Networking, Explaining complex topics) I've gained have been invaluable. I now look at the world in an entirely different way.

I share the same feelings as marcamillion regarding having the "veil" lifted on world affairs. I have a BEng in Aerospace Avionics (Electrical Engineering for air and space craft) but have always worked as a Software Engineer / Developer. After a few years of working full time (big multinational then small ~20 person company) I was wondering "there has to be more to life than this."

While reading online I came across recommendations to read this weekly magazine called "The Economist". It was super hard to get through at first: I didn't know the people, some of the countries, or the financial jargon. But I persisted and each week I'd go and buy it at the newsagent. I'd systematically read each issue from cover to cover. Those first ~15 issues looked like a rainbow; multicoloured post-it notes fanning out from three sides. Whenever I came across a person, word, country, concept I didn't recognize I'd write it on a post-it and affix it to the page. Later, I'd systematically revisit the notes and resolve my ignorance using Google + Wikipedia.

A lot of the time I didn't want to read the whole thing, only the Business, Finance, and Technology sections. However, I forced myself to read about issues in Sudan, or Kyrgyzstan, or politics in South America. I am now so much more aware of the way the world works, what's happening in world politics, financial markets, business, literature. As marcamillion mentions, acquiring this knowledge was liberating.

Programming: Persisting with Haskell until it "clicked".

Over the past 5 years I've revisited Haskell a number of times. Reading tutorials and books; watching videos. I "got" Monads as a mathematical concept, but didn't have a strong grasp of how and why they should be used.

On about 6th crack at it I just sat down and read code. Thousands and thousands of lines of code. Once I'd "groked" a concept from seeing how it was used in real world code I'd go and implement it from scratch. I'd recreate Maybe, then build the Monad typeclass, and finally implement the Monad typeclass for Maybe. I'd do this for Monad transformers, Monoids, Applicative, etc. This was really hard for me. Looking back I realise I was optimizing my learning by always pushing the edge of what I could do.

Over time I gradually became competent at writing Haskell as well as reading and understanding other people code. This additional understanding of functional programming has dramatically change my programming style. I now create a lot more immutable data types. In C++ I'll liberally use const, in Python namedtuples. I get frustrated when a language prevents me from easily mapping and composing functions. I really really value algebraic data types and use them wherever I can.

tl;dr Read The Economist and went to grad school. Learned Haskell and now use immutability and pure functions much more often.

Funnily enough, now that you mentioned it, The Economist did the same for me too. So both my MBA and The Economist completely changed my world view.

One tip is, I actually find the magazines hard to read. Something about the typeface and spacing just screams "dense" to me.

But...what I have done is get the audio version. They are hella long, like 3.5 hours total, but so well produced and VERY nice to consume. Each "article" is about 4 - 7 mins on average, then there are a handful that are 20 minute special reports.

When I think of product/market fit, I think of my addiction to The Economist. I don't think there is a price they could raise it to, that I wouldn't buy it at. And...if I couldn't afford it, I would definitely pirate it :)

I don't think you need to learn Haskell to understand the benefits of immutability. Debugging the java code of someone who wrote big classes with lots of functions changing members of the class did the trick for me.

On the other hand, kudos for going through the hardship of learning Haskell, I will try it at some point.

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