hacker news with inline top comments    .. more ..    17 Oct 2016 Ask
home   ask   best   2 years ago   
Ask HN: $1k+ side projecters, what was the best thing you did to market it?
254 points by taphangum  8 hours ago   55 comments top 24
a12k 1 hour ago 0 replies      
https://destructible.io for sharing files temporarily with yourself across terminals, or others. I submitted to HN, got a huge spike of subscribers. Submitted to Reddit, got another, smaller spike.

Eventually other people started submitting it in response to questions online in forums like HN, where people would ask things like, "What's the Best Productivity Tool You've Found" or, "What Secret Thing Do You Wish Everyone Knew About." Started getting more spikes in users, then a regular base of users, then paying customers, then enterprise customers! Pretty cool organic spread.

It's definitely a side project, but making some money on it which is awesome.

Tried Google AdWords, total waste of (free up to coupon amount) money. Maybe one new user with $250 spent.

So I would say: Build a good product and maybe if people will like it enough you will get some organic growth.

edit to say: I'm still 1000% just doing this as a fun aide project that I built to serve a need I specifically had, but am happy to answer specific questions about what I stumbled through and did to kind of get off the ground enough to pay monthly costs and make a little profit.

csallen 5 hours ago 3 replies      
Hi Tapha! I run Indie Hackers (https://IndieHackers.com), a site where I interview the founders of profitable business and side projects. I just passed $1k revenue this month (you can follow along via my timeline here: https://IndieHackers.com/blog).

My number one marketing approach by far has been to tailor the site to the HN audience.

I do this primarily by asking questions that people on HN always like to see answered (how much money are you making? how did you come up with the idea? what tech did you use? what are your best marketing channels? etc). Lots of similar sites don't ask any of these questions, especially not the revenue one.

I tend to share the most interesting interviews with the HN audience every couple weeks or so, and they usually do pretty well!

streptomycin 2 hours ago 1 reply      
Since my video game https://basketball-gm.com/ targets hard core basketball fans, I post to /r/nba on Reddit in the NBA offseason. In the offseason, there's not much other content to compete against so my posts do well. And the type of people reading /r/nba in the offseason are exactly my target market.




lunaru 4 hours ago 1 reply      
There are some flash-in-the-pan things and some that are evergreen.

When it comes to the former, getting HN front-paged, a Techcrunch write-up, PH, etc tends to lead to a spike in traffic and eye balls, but very rarely do you get your true base of customers from these things. (But hey, they don't hurt!)

In the latter category you'll hear things like SEO, content marketing etc. Those are all important and must-haves, but these days it's also table stakes since it's what everyone is doing as well. When it comes to getting differentiators that can take you from $1k to $2k or $2k to $4k you need a distribution channel -- preferably a partner or a distribution platform where you can narrowly focus on a small audience. Yes, this means you'll need to reach out and talk to people with similar audiences and folks who are willing to help. For those of us who prefer talking to computers (coding) more than talking to humans (eww emails and phone calls) this can be unnatural but is also extremely important.

I'm personally happy to chat with any part-timers looking to grow their projects or even become full-time entrepreneurs. Just hit me up via my profile here on HN.

My personal experience: I've started two businesses as side projects that went on to be full-time ventures. Ronin (https://www.roninapp.com) was started in 2008 (eventually went full-time, acquired, and then spun out). Later on Reamaze (https://www.reamaze.com) was actually a side project on a side project, but is now at full time with a small team and growing very nicely.

sakopov 4 hours ago 2 replies      
The product I'm working on helps businesses stay in compliance with financial regulations. Not necessarily as cool as other Show HN projects. Is it still worth posting it on HN?

I also ran across a Reddit post where someone created a Twitter bot which favorited and retwitted posts with certain tags to attract potential customers for a product the OP was marketing. Those who ended up checking out his Twitter page found a note which said that followers would get a deal if signed up. The OP mentioned he got his first 20+ paid customers this way. Not sure how effective this is but thought I'd share.

matt4077 7 hours ago 1 reply      
I flipped the switch to take the website live, enabled google ads and went to a friend's barbecue. We had the first customer before I was done with the first glass of wine.

The effectiveness of ads has unfortunately dropped over the years, but in the first 20 months or so built a roster of 10,000 customers or so who have stayed very loyal and allowed us to expand to products with much higher volume.

bengarvey 3 hours ago 0 replies      
The week I launched http://kidsdungeonadventure.com I got a review on Wired's GeekDad blog. That link drove nearly all my sales for monthshttps://geekdad.com/2011/03/an-rpg-for-pre-schoolers-get-the...
sossles 3 hours ago 1 reply      
My web/mobile game called Twenty (http://twenty.frenchguys.net/play) blew up when I put it on hackernews.

But before and even after that, emails to game review sites were universally ignored (with Rock Paper Shotgun as the one exception). Even the Ars Technica guy who proclaimed it as his "latest obsession" wouldn't reply to an email.

I understand these people are inundated with emails, but I was still a little surprised.

logane 7 hours ago 2 replies      
Someone posted my game (http://hextris.io/) on Hacker News - from there it spread to a few popular outlets (major tech news companies, subreddits, obscure but popular blogs), all organically. Initially I tried submitting the game to game journalists / iOS app review websites, none of which responded to me - wouldn't recommend that route unless you have ins somewhere.
shortformblog 5 hours ago 0 replies      
My newsletter, Tedium (http://tedium.co), has slightly more than 3,000 subscribers, and produces a lot of content each weekbetween 3,000 and 4,000 words over two pieces. My strategy for building it out has essentially meant being willing to syndicate these articles far and wide. I currently work with three different outlets (Atlas Obscura, Motherboard, and Neatorama) to republish the work, all of which bring in new subscribers frequently. Eventually, Digg started picking up its articles as well. Basically, it gives me creative license to write whatever I want in my narrow niche while ensuring the newsletter goes out far and wide. I try to reuse every piece so nothing goes to waste.

While it's not bringing in tens of thousands of bucks, it's brought in enough to make it worthwhile (in part through affiliate linksmy strategy is to link to the weirdest things on Amazon I can find, with the assumption people will eventually go back to buy something else).

I've also tried to find ways to minimize costs on my end, including switching email providers so that the financial impact of sending thousands of emails every month is small.

encoderer 6 hours ago 1 reply      
A few thoughts from our experience growing Cronitor as a side project:

1. Hacker News has provided exposure but not a lot of direct business. Sometimes people find us on other channels but recognize us from HN. I would say, don't worry too much if you never front page here.

2. Working on SEO consistently over the years has been our most valuable source of high quality traffic.

3. Work with influencers in your industry. When a popular AWS blogger wrote about Cronitor and was tweeted by their AWS community lead Jeff Barr we added 8 subscribers that day that are still with us.

4. Re-marketing to sign-ups that didn't convert. Every month our product noticeably gets better in some way, and those early sign-ups to our free plan that didn't subscribe have been an invaluable source of later conversion.

khuknows 7 hours ago 2 replies      
Not sure if this is helpful, but for myself, it was essentially a post on ProductHunt & emailing some journalists.

The ProductHunt post was augmented by the fact the product (https://uimovement.com) was clearly for a certain community (designers), so it was picked up and shared on other publications/social media accounts within the community.

From the PH post, it was picked up and shared on DesignerNews, r/web_design, Webdesignernews, Codrops, Smashing Mag, etc. The other sources brought in way more traffic than PH in the end.

For more long-term, but slower growth, automating social media has been helpful too, but that can only work for content-heavy products.

erikb 56 minutes ago 0 replies      
Funny how most people decide after one attempt if a marketing approach works for them or not. What happened to really learning the stuff before making decisions? You can be sure that common sales channels will work if you know how to do them and if you have a product that fits the corresponding market you are targetting. Use one of the known common ones (SEO, ads, social marketing), learn all that it has to offer, experiment with your product and corresponding markets (i.e. if your market is not on HN, try a subreddit, or other forum). You will certainly make some financial success if you do that well enough. Only really start to decide that something works in a context or not, after you have attempted different channels with success a few times each, and base that decision not on whether or not that brings in money at all, but whether or not that is a likely efficient approach.
angry-hacker 5 hours ago 2 replies      
Paid for the "influencers" in my niche to talk about my product. It works. Now who said native advertising doesn't work? Unethical? - maybe...
nhorob67 2 hours ago 0 replies      
Facebook ads to blog posts. I've seen a 10.5x return on my investment so far. For my farm software company: http://harvestprofit.com
callmeed 7 hours ago 3 replies      
I have a seasonal project that creates christmas/holiday cards from Instagram photos. It makes a few grand between halloween and new years (https://cheergram.com but the cert is expired rn)

Surprisingly, the best thing that I did to get it some traction was having a few influential people in the design/craft community post it to pinterest. A couple years ago, a single pin generated dozens of orders.

Other than that, some SEO fu has always helped. It used to be on page 1 for "Instagram christmas cards" and I'd get lots of traffic from that (currently on page 2). So, some SEO basics (good titles, good headings, a blog/news section) always helps.

shireboy 4 hours ago 0 replies      
I'm the author of Trello Dojo https://leanpub.com/trellodojo Marketing does not come naturally to me. I feel like it's a good product, but I don't want to be spammy. By far the best marketing choice was to ask Trello to put it on their resource board. I was so nervous- what if they didn't like it? What if they sued me for trademark infringement or something? They did none of those things and put it up cheerfully, where Google Analytics says a majority of me references come from.
duck 4 hours ago 0 replies      
For my side-project, http://hackernewsletter.com, it has been simply time and being passionate about it. In the beginning I tried various things from reddit ads to guest blog posts, but now six years into it and 38k subscribers, I've found that simply showing up and doing it every week has been my biggest marketing resource.
jonobird1 3 hours ago 0 replies      
With https://LaunchLister.com, I found that the best marketing I did was Twitter surprisingly.

Cater to the audience and engage with the founders and it has a steady flow of increasing subscribers.

I just make sure my newsletter has good content consistently for my readers.

goatherders 2 hours ago 0 replies      
Great question and thread. I launched my side project a month ago and have had zero conversions after about 200 click thrus from Facebook ads. It's a platform for freelance developers and designers to pick up extra work without me being a middle man; I introduce you to possible clients and the subsequent conversations and experience are up to you.


Then I got busy at work and haven't spent as much time marketing it.

anthnguyen94 3 hours ago 0 replies      
SyntaxDB (https://syntaxdb.com) was put on PH and HN and that gave it a significant increase in traffic.

It was actually posted on PH once before, but that time it wasn't featured. Almost one year later, I built an API, several extensions, increased the amount of content, and integrated it with DDG. Eventually I decided it was worth giving the PH people a shout to see if it would get reposted (they let you repost if your product makes substantial progress). It successfully got featured that time.

tonyjstark 5 hours ago 0 replies      
With Wokabulary (https://wokabulary.com) we did no marketing for years and just worked in our spare time on the product. Still we got some posts by magazines and blogs. Now we do a bit more like writing to review sites and journalists but we don't see much traffic growth by that. OTOH we are not really good at social media stuff.

To answer your question, for us listening to customer feedback and releasing new versions periodically worked best so far.

lukethomas 7 hours ago 0 replies      
For me (https://fridayfeedback.com) it's been a mixture of outreach (sales), writing in-depth guides about topics that are interesting to the target market (managers). I've tested some ads, but no dice yet.
icelancer 1 hour ago 0 replies      
Nothing. I made the best mousetrap. Then I told people it was the best mousetrap. And I never lied or used marketing BS. Now my company is worth $2MM.

That's how it used to work. It still does.

Ask HN: When to not use deep learning?
4 points by khiner  48 minutes ago   1 comment top
minimaxir 15 minutes ago 0 replies      
You can't use deep learning in cases where normal statistical modeling is invalid, like multicolinearity among features. (Of course, some deep learning methods can get around that!)
Ask HN: Trying to grow a newsletter subscriber base
16 points by allsystemsgo  6 hours ago   8 comments top 6
wj 5 hours ago 0 replies      
Have you considered incentives for new subscribers? My experience is that there is no shortcut to growing subscriber base but you can slowly do it by offering a short educational email course, a PDF of 10 tips, or an ebook (which has the additional benefit of helping establish her as an authority--particularly if you self-publish to Amazon through Createspace. "Newsletter name by the author of Book About Topic".)

Create a separate landing page for each. Here are some free landing page templates you can use:


Here is a blog post on the ebook option:


gk1 5 hours ago 1 reply      
If you want subscribers who care about your content and engage, and not just people (or bots) who signed up for free things, then earn their subscription by sharing interesting and helpful content.
codezero 1 hour ago 0 replies      
What's the newsletter about? Likely the best approach to attracting subscribers will depend heavily on the target demographic.
pan69 4 hours ago 0 replies      
Like others have already pointed out, I'm also not sure if giveaways are the best option since it might not attract genuine interest, which I assume is what you're after.

Even though you might have the most insightful newsletter, getting awareness about this with a target audience can be tough. I'm not sure what the subject on your wife's newsletter is but, if she's not already, she should be active in the community targeting this audience. E.g. if there are discussion forums regarding the newsletter's subject then your wife should participate as an insightful and active member of this community and be viewed as an authority on the subject. Then having a newsletter sign up link in your public profile of these communities might then help in getting genuine subscribers.

shortformblog 5 hours ago 0 replies      
Just wrote about this in another thread: https://news.ycombinator.com/item?id=12721396

But I would highly recommend the syndication route if it's likely to gain pickup through that method.

Overtonwindow 5 hours ago 0 replies      
I work for a small nonprofit that publishes a newsletter, and it's been very hard to convince people to subscribe. We're trying to think beyond email, and more mobile. Then again ours is free. I wish you the best of luck.
Ask HN: How to get started with machine learning?
827 points by georgehdd  1 day ago   112 comments top 50
jotto 1 day ago 6 replies      
If you want to jump right in with "hello world" type TensorFlow (a tool for machine learning), see https://news.ycombinator.com/item?id=12465935 (how to fit a straight line using TensorFlow)

If you like to study/read: the famous Coursera Andrew Ng machine learning course: https://www.coursera.org/learn/machine-learning

If you just want course materials from UC Berkeley, here's their 101 course: https://news.ycombinator.com/item?id=11897766

If you want a web based intro to a "simpler" machine learning approach, "decision trees": https://news.ycombinator.com/item?id=12609822

Here's a list of top "deep learning" projects on Github and great HN commentary on some tips on getting started: https://news.ycombinator.com/item?id=12266623

If you just want a high level overview: https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec...

stared 1 day ago 0 replies      
I wrote a blog post exactly on that: http://p.migdal.pl/2016/03/15/data-science-intro-for-math-ph...(including the data science part).

I strongly advice for:

- using Python in the interactive environment Jupyter Notebook,

- starting with classical machine learning (scikit-learn), NOT from deep learning; first learn logistic regression (a prerequisite for any neural network), kNN, PCA, Random Forest, t-SNE; concepts like log-loss and (cross-)validation,

- playing with real data,

- it is cool to add neural networks afterwards (here bare TensorFlow is a good choice, but I would suggest Keras).


- http://www.r2d3.us/visual-intro-to-machine-learning-part-1/

- http://hangtwenty.github.io/dive-into-machine-learning/

- https://github.com/leriomaggio/deep-learning-keras-euroscipy...

nl 1 day ago 2 replies      

Instead, learn decision trees and more importantly enough statistics so you aren't dangerous.

Do you know what the central limit theorem is and why it is important? Can you do 5-fold cross validation on a random forest model in your choice of tool?

Fine, now you are ready to do deep learning stuff.

The reason I say not to do neural networks first is because they aren't very effective with small amounts of data. When you are starting out you want to be able to iterate quickly and learn, not wait for hours for a NN to train and then be unsure why it isn't working.

allenleein 1 day ago 1 reply      
Courses You MUST Take:

1. Machine Learning by Andrew Ng (https://www.coursera.org/learn/machine-learning) /// Class notes: (http://holehouse.org/mlclass/index.html)

2. Yaser Abu-Mostafas Machine Learning course which focuses much more on theory than the Coursera class but it is still relevant for beginners.(https://work.caltech.edu/telecourse.html)

3. Neural Networks and Deep Learning (Recommended by Google Brain Team) (http://neuralnetworksanddeeplearning.com/)

4. Probabilistic Graphical Models (https://www.coursera.org/learn/probabilistic-graphical-model...)

4. Computational Neuroscience (https://www.coursera.org/learn/computational-neuroscience)

5. Statistical Machine Learning (http://www.stat.cmu.edu/~larry/=sml/)

If you want to learn AI:https://medium.com/open-intelligence/recommended-resources-f...

krapht 1 day ago 3 replies      
My favorite textbook: Elements of Statistical Learning by Hastie. It's free, too!

If you don't understand something in the book, back up and learn the pre-reqs as needed.


krosaen 1 day ago 2 replies      
I took the summer off to learn enough ML to transition from a career in software engineering & product / leadership type roles to ML. I suggest for a first round learning practical tools and techniques so you can start applying supervised learning techniques right away while also starting to build a more solid foundation in probability & statistics for future deeper understanding of the field. I've written about my curriculum here with lot's of specific resources here:


hrzn 1 day ago 0 replies      
Gain background knowledge first, it will make your life much easier. It will also make the difference between just running black box libraries and understanding what's happening.Make sure you're comfortable with linear algebra (matrix manipulation) and probability theory. You don't need advanced probability theory, but you should be comfortable with the notions of discrete and continuous random variables and probability distributions.

Khan Academy looks like a good beginning for linear algebra:https://www.khanacademy.org/math/linear-algebra

MIT 6.041SC seems like a good beginning for probability theory:https://www.youtube.com/playlist?list=PLUl4u3cNGP60A3XMwZ5se...

Then, for machine learning itself, pretty much everyone agrees that Andrew Ng's class on Coursera is a good introduction:https://www.coursera.org/learn/machine-learning

If you like books, "Pattern Recognition and Machine Learning" by Chris Bishop is an excellent reference of "traditional" machine learning (i.e., without deep learning).

"Machine Learning: a Probabilistic Perspective" book by Kevin Murphy is also an excellent (and heavy) book:https://www.cs.ubc.ca/~murphyk/MLbook/

This online book is a very good resource to gain intuitive and practical knowledge about neural networks and deep learning:http://neuralnetworksanddeeplearning.com/

Finally, I think it's very beneficial to spend time on probabilistic graphical models. Here is a good resource:https://www.coursera.org/learn/probabilistic-graphical-model...

Have fun!

leftpad 1 day ago 0 replies      
It depends on what your goals are. If you'd like to become an ML Engineer or Data Scientist, Tensorflow should be last thing you learn. First, develop a solid foundation in linear algebra and statistics. Then, familiarize yourself with a nice ML toolkit like Scikit-Learn and The Elements of Statistical Learning (which is free online). The rest is a distraction.

In addition to the linear algebra and statistics MOOCS mentioned, I'll also add:

* No bullshit guide to Linear Algebra: https://gumroad.com/l/noBSLA

* Statistical Models: Theory and Practice: https://www.amazon.com/Statistical-Models-Practice-David-Fre...

carriger99 1 day ago 0 replies      
I very much like Michael Nielsen's book Neural Networks and Deep Learning. It has a great introduction with examples and code you can run locally. Really nice to get started. http://neuralnetworksanddeeplearning.com

Also Fermat's Library is going to be annotating the book, which should make it even more accessible: http://fermatslibrary.com/list/neural-networks-and-deep-lear...

mindcrash 1 day ago 0 replies      
This link appeared on HN a few days ago:


Has some great links if you already have some knowledge about software engineering and want to get into Machine Learning

Josh Gordon from Google also has a extremely nice handson "how to start with Machine Learning" course on YouTube featuring scikit-learn and TensorFlow:


barbolo 1 day ago 0 replies      
If you are interested in deep learning or visual problems, I recommend the notes at:


Really great content from Andrej and his coworkers. This guy is great.

You can easily find all classes videos on YouTube too.

jps359 1 day ago 0 replies      
Get some background knowledge; I think with a topic like machine learning it's important to understand why certain algorithms work better than others on different kinds of data. I would recommend following a structured course. Andrew Ng's, or the UC berkley one are good. Tom Mitchell's Machine Learning book is a great intro too to supplement the online course of your choice.

If you're a python dev, maybe download scikit-learn and see what kinds of things you can put together after a few lectures.

caretStick 1 day ago 1 reply      
Newton's method and other numerical methods are the hello world of machine learning.

Why numerical methods?

* They might produce the right answer

* They frequently do

* They are easy to visualize or imagine

* You get used to working with a routine that is both fallible but quite simple and remarkably able to work in a wide variety of situations. This is what machine learning does, but there are more sophisticated routines.

At some point you need to make a decision to go down the road more focused on analysis & modelling vs machine learning & prediction. It's not that the two are exclusive, but they really do seek to address really big forks in the problem space of using a computer to eat up data and -- give me predictions or give me correct answers

Google needs lots of prediction to fill in holes where no data may ever exists. Analysis and modeling can really fall down when there is no data to confirm a hypothesis or regress against.

An engineer needs a really good model or the helium tank in the Falcon 9 will explode one time in twenty vs one time in a trillion. The model can predict, based on the simulation of the range of parameters that will slip through QA, how many tanks will explode. Most prediction methods are not trying to solve problems like this and provide little guidance on how to set up the model.

On the prediction side, you will learn all the neural net and SVM stuff.

On the analysis and modelling side, get ready for tons of probability and Monte Carlo stuff.

They are all fun.

NicoJuicy 1 day ago 2 replies      
I'd be more interested in real life results on a small scale first.

I too felt like ML is something new to try, but the lack of real world use cases on a small scale ( not google, Microsoft, ... ) Has kept me from trying/doing.

I only saw the farm with image recognition for vegetables as an example for now.

Anyone has other examples?

markatkinson 1 day ago 0 replies      
Skimmed through this and didn't see Kaggle. They have a great intro competition to take part in. Great community and great way to get stuck in. https://www.kaggle.com
wangchow 1 day ago 0 replies      
While some people might not agree with me, I'd say focus on the Math. Machine learning may be easy to use with these toolkits but doing something useful with it will require deeper understanding.
udayj 1 day ago 0 replies      
Some resources to get you started - not including any coursera or udacity courses since others have already mentioned it.

Mathematical Monk - https://www.youtube.com/user/mathematicalmonk#p/c/0/ydlkjtov... (includes a probability primer)

Awesome Courses - https://github.com/prakhar1989/awesome-courses - its a very extensive list of university courses including subjects apart from Machine Learning as well

Programming Collective Intelligence - http://www.amazon.com/programming-collective-intelligence-bu... - heard very good reviews about this

Many other resources available apart from the above. You can access more such resources at http://www.tutorack.com/search?subject=machine%20learning

I think its a good idea to go through one or more beginner level courses like that offered by Andrew Ng on Coursera and then do an actual project.

[Disclaimer - I work at tutorack.com mentioned in the comment]

diggernaut 1 day ago 0 replies      
You can start with free coursera course https://www.coursera.org/learn/machine-learning/, it starts 17 oct

and then continue with https://www.coursera.org/learn/neural-networks/

AndrewKemendo 1 day ago 0 replies      
This specific topic/question comes us frequently enough that I feel like we should either make this thread the canonical answer or have another pointer that we can generally agree upon to point people in that direction.

I think it's important for people to know where to go for good resources, but this exact question keeps coming up incessantly.

canada_dry 1 day ago 0 replies      
If you're wanting to do ML text processing using python (ala NLTK) I recommend: http://textblob.readthedocs.io/en/dev/index.html
slantaclaus 1 day ago 0 replies      
Take a class on linear algebra. Learn how to use matlab or octave. Knowing these two interdependent subsets of knowledge before diving into machine learning is absolutely indispensable as far as I can tell. I would've gotten so much more out of Ng's class if I knew this stuff beforehand
cconroy 1 day ago 0 replies      
To get intuition and the right foundation read Society of Mind. For me the book is more about thinking in terms of computation which is what (IMO) ML is about instead of statistics (of which is important to know too!).

Now practical: I think the best way to learn is pick an algorithm & representation and implement it in your favorite language. Bonus if you have your own language to work with.

I would start looking into Decision Trees first, implement them and then implement some use cases(, which follow after implementing them). Do this for other approaches, like ANN, which you can have it beat you at checkers which is strangely satisfying.

But keep in mind Minsky. I think he is like Archimedes doing "Calculus"-type approaches without fully realizing. Maybe you could be Newton?

BickNowstrom 1 day ago 0 replies      
Everybody learns differently, but I would suggest starting with the how, not the what. Compare: How do I sort a list? With: What is exactly happening when I sort a list? Application before theory.

Start with a tutorial/pre-made script for one of the Kaggle Knowledge competitions. Move on to a real Kaggle competition and team up with someone who is in the same position on the learning curve as you. Use something like Skype or a Github repo to learn new tricks from one another.

tedmiston 1 day ago 0 replies      
Here's an alternative suggestion try a machine learning contest on one of the programming challenge problem sites.

HackerRank (YC S11) has one coming up in 2 weeks (filter by Domains > AI) [1].

I plan to participate as well just to explore the space. Feel free to shoot me a message if you'd like to discuss more.

[1]: https://www.hackerrank.com/contests

JoeDaDude 1 day ago 0 replies      
A good start in "classical" methods" (i.e.: before deep learning and convolutional neural networks) is the old standby, the Weka Data Mining library [1]. Along with the textbook, it will make you comfortable with methods like k-nearest neighbor, support vector machines, decision trees, and the like.

[1] http://www.cs.waikato.ac.nz/ml/weka/

master_yoda_1 1 day ago 1 reply      
How is your programming background? Do some contest on hackerrank and gauge your skill because machine leaning uses lots of algorithm from math + computer science (eg computational geometry).Machine learning is basically writing some math in code and running experiment and statistically reason about result. If you really want to do that then you need to have a background in math + statistics + software development.
nubbel 1 day ago 0 replies      
I liked this one quite a lot: http://neuralnetworksanddeeplearning.com
rsmsky1 1 day ago 0 replies      
I highly recommend the Udacity courses on machine learning. They even have ones on how to become a self driving car engineer.
asadlionpk 1 day ago 0 replies      
If you just want to jump right in with minimal theory and then learn as you progress. Here is how I did it: https://blog.asadmemon.com/shortest-way-to-deep-learning-41e...
nothing123 1 day ago 0 replies      
There is a nice example of machine learning with python and R in Analytics Vidhya and other tutorials, also ISLR introduction to statistical learning with R gives you an overview of some standard methods.
dekhtiar 1 day ago 0 replies      
You will find absolutely everything you need here : https://www.feedcrunch.io/@dataradar/. Just type what you want to know in the search engine.

i.e : Tutorial, Getting Started, ...

rayalez 1 day ago 0 replies      
I have compiled a list of the best resources for getting started with ML, I highly recommend it, it is a great place to get started:


nerdponx 1 day ago 0 replies      
Learn statistics. Otherwise you will get yourself into trouble using techniques you do not understand.
ptrkrlsrd 1 day ago 0 replies      
This is a great article about learning machine learning: https://medium.com/learning-new-stuff/machine-learning-in-a-...
z4n 1 day ago 0 replies      
udacity free machine learning course is a nice way to get the basics https://www.udacity.com/course/intro-to-machine-learning--ud...
anondon 1 day ago 1 reply      
Slight tangent, so bare with me. Every other week, posts such as this come up, asking how to learn X, so I was wondering if there is any Github repo or some website that keeps track of all the resources posted here?
visarga 1 day ago 0 replies      
You need to learn the basic concepts before you start with coding. Take your time and view Andrew Ng's course. It is good for the first timers.
alexott 1 day ago 0 replies      
ML class by Andrew Ng is a good start.Then find task with application of ML, or use Kaggle...
nefitty 1 day ago 0 replies      
Here's a previous Ask HN with more resources: https://news.ycombinator.com/item?id=12374837
jorgemf 1 day ago 0 replies      
It depends on what you really want to do in the future. Learning a framework could be useless if you don't know how to do correctly basic things as creating a train, test and validation set.

There are basic things I think you must know before jumping into a framework or int any specific algorithm. First thing you probably will have to do is to collect the data and clean it. In order to do this correctly you need some basic statistics. For example you need to know what is a gaussian distribution and collect samples in a way that are representative of your problem. Then you may need to clean the samples, remove outlines, complete blank data, etc. So it is basic you know some statistics to do this right.I have seem people with a lot of knowledge of tools than then they are not able to create a train/test/validation set correctly and the experiment is completely invalid from here no matter what you do next (http://stats.stackexchange.com/questions/152907/how-do-you-u..., https://www.youtube.com/watch?v=S06JpVoNaA0&feature=youtu.be ). You also need to know how are you going to test your results, so again you need to know how to use a statistical test (f-test, t-test). So first thing, jump into statistics to understand your data.

The next step I think is to know some common things in machine learning as the no free lunch theorem, curse of dimensionality, overfitting, feature selection, how to select the current metric to asses your model and common pitfalls. I think the only way to learn this is reading a lot about machine learning and making mistakes by your own. At least now you have some things to search in google an start learning.

The third step would be to understand some basic algorithms and get the feeling of the type of algorithms, so you know when a clustering algorithm is needed or your problem is related classification or with prediction. Sometimes a simple random forest algorithm or logistic regression is enough for your problem and you don't need to use tensorflow at all.

Once you know the landscape of the algorithms I think it is time to improve your maths skills and try to understand better how the algorithms works internally. You might not need to know how a deep network works completely, but you should understand how a neural network works and how backpropagation works. The same with algorithms as k-means, ID3, A*, montecarlo tree search or most popular algorithms that you are probably are going to use in day to day work. In any case you are going to need to learn some calculus and algebra. Vectors, matrix and differential equations are almost everywhere.

You would probably have seen some examples when learning all the stuff I talked about, then it is time to go to real examples. Go to kaggle and read some tutorials, read articles about how the community of kaggle has faced and winning the competitions. From here is just practice and read.

You can jump directly into a framework, learn to use it, have 99% accuracy in your test and 0% accuracy with real data. This is the most probably scenario if you skip the basic things of machine learning. I have seen people doing this and end up very frustrated because they don't understand how their awesome model with 99% accuracy doesn't work in the real world. I have also seen people using very complex things as tensorflow with problems that can be solved with linear regression. Machine learning is a very broad area and you need maths and statistics for sure. Learn a framework is useless if you don't understand how to use it and it might lead you to frustration.

Theodores 1 day ago 0 replies      
I think you should start with a real world problem that is really important to a company that you work for. The problem might be one common to many businesses but unique to that business. For instance, demand forecasting, every business is different as are the signals needed for accurate demand forecasting.

So you could start with some really simple example code for demand forecasting but where you put in your data and your signals. In this way you can learn what you need to solve a particular problem, 'getting lucky' from only having to adapt examples. Sure it might be nice to learn all the fundamentals first but it is sometimes nice to scratch an itch, every company has plenty, choose one and see how far you get and learn along the way.

1_over_n 10 hours ago 0 replies      
IMO the best way to get started (like with anything) is by getting started. I think the way you make progress is going to come down to you personally as an individual and what your motivations are. Before learning ANYTHING new i would invest some time in learning how to learn. There is a good coursera course on this https://www.coursera.org/learn/learning-how-to-learn and the book by the course authors is incredibly useful for putting a framework with some techniques that can help the approach to learning any new skill. This is not meant to be condescending advice but for me personally it's changed the way i go about learning any new skill now.

I think as well it really depends where you are coming from / what your background is. The reason i say this is i have recently gone through a similar transition into machine learning 'from scratch' except once i got there i realised i knew more than i thought. My academic background is in psychology / biomedical science which involved a LOT of statistics. From my perspective once i started getting into the field i realised there are a lot of things i already knew from stats with different terms in ML. It was also quite inspiring to see many of the eminent ML guys have backgrounds in Psychology (for instance Hinton) meaning i felt perhaps a bit more of an advantage on the theoretical side that many of my programming peers don't have.

I realise most people entering the field right now have a programming background so will be coming at things from an opposite angle. For me i find understanding the vast majority of the tests and data manipulation pretty standard undergraduate stuff (using python / SK Learn is incredible because the library does so much of the heavy lifting for you!). Where i have been struggling is in things that an average programmer probably finds very basic - it took me 3 days to get my development environment set up before i could even start coding (solved by Anaconda - great tool and lessons learned). Iterating over dictionaries = an nightmare for me (at first anyway, again getting better).

I think (though i may be biased) it's easier to go from programming to ML rather than the other way around because so much of ML is contingent on having decent programming skills. If you have a decent programming skill set you can almost 'avoid' the math component in a sense due to the libraries available and support online. There are some real pluses to ML compared to traditional statistics - i.e. tests that are normally ran in stats to check you are able to apply the test (i.e. shape of the data: skewness / kurtosis, multicollinearity etc) become less of an issue as the algorythms role is to deliver an output given the input.

I would still recommend some reading into the stats side of things to get a sense of how data can be manipulated to give different results because i think this will give you a more intuitive feel for parameter tuning.

This book does not look very relevant but it's actually a really useful introduction to thinking about data and where the numbers we hear about actually come from


In conclusion if you can programme and have a good attitude towards learning and are diligent with efforts I think this should be a simple transition for you.

neelkadia 13 hours ago 0 replies      
dschiptsov 1 day ago 0 replies      
The classic Andrew Ng's course on Coursera. Then ML courses on Udacity.
dlo 1 day ago 0 replies      
Contrary to the other advice around here, I would strongly advise NOT taking a course. I think it is a good idea at some point, but it is not the first thing you should be doing.

The very first thing you should do is play! Identify a dataset you are interested in and get the entire machine learning pipeline up and running for it. Here's how I would go about it.

1) Get Jupyter up and running. You don't really need to do much to set it up. Just grab a Docker image.

2) Choose a dataset.

I wouldn't collect my own data first thing. I would just choose something that's already out there. You don't want to be bogged down by having to wrangle data into the format you need while learning NumPy and Pandas at the same time. You can find some interesting datasets here:


And don't go with a neural net first thing, even though it is currently in vogue. It requires a lot of tuning before it actually works. Go with a gradient-boosted tree. It works well enough out of the box.

3) Write a classifier for it. Set up the entire supervised machine learning pipeline. Become familiar with feature extraction, feature importance, feature selection, dimensionality reduction, model selection, hyperparameter tuning using grid search, cross-validation, ....

For this step, let scikit-learn be your guide. It has terrific tutorials, and the documentation is a better educational resource than beginning coursework.


4) Now you've built out the supervised machine learning pipeline all the way through! At this point, you should just play:

4a) Experiment with different models: Bayes' nets, random forests, ensembling, hidden Markov models, and even unsupervised learning models such as Guassian mixture models and clustering. The scikit-learn documentation is your guide.

4b) Let your emerging skills loose on several datasets. Experiment with audio and image data so you can learn about a variety of different features, such as spectrograms and MFCCs. Collect your own data!

4c) Along the way, become familiar with the SciPy stack, in particular, NumPy, Pandas, SciPy itself, and Matplotlib.

5) Once you've gained a bit of confidence, look into convolutional and recurrent neural nets. Don't reach for TensorFlow. Use Keras instead. It is an abstraction layer that makes things a bit easier, and you can actually swap out Tensorflow for Theano.

6) Once you feel that you're ready to learn more of the theory, then go ahead and take coursework, such Andrew Ng's course on Coursera. Once you've gone through that course, you can go through the course as it actually has been offered at Stanford here (it's more rigorous and more difficult):


I will also throw in an endorsement for Cal's introductory AI course, which I think is of exceptionally high quality. A great deal of care was put into preparing it.


There are other good resources that are more applied, such as:


I hope this helps. What I am trying to impart is that you will understand and retain coursework material better if you've already got experience, or better yet, projects in progress that are related to your coursework. You don't need to undergo the extensive preparation that is being proposed elsewhere before you can start PLAYING.

marknadal 1 day ago 0 replies      
There is a great introductory article with examples on how the reasoning behind distributed machine learning works. All in javascript too! It might be "too early" for some people though: http://myrighttocode.org/blog/artificial%20intelligence/part...
laichzeit0 1 day ago 2 replies      
You should have the equivalent of an undergraduate degree in mathematical statistics (calculus, linear algebra, et al). It should take about 4 years of full time study to achieve that.

Forget about the code part. It's the least difficult part.

Ask HN: How to handle a workaholic colleague?
75 points by SoulMan  12 hours ago   59 comments top 30
ronnier 10 hours ago 2 replies      
I work a lot. I'm working right now (took a break to read HN). I just enjoy getting things done and it's paid off well for me. I've learned though that my ability to work many hours and my drive to do so doesn't mean I should enforce that on others, so I don't let my teammates know when I work outside of normal hours. I don't send emails at night or weekends. I don't send code reviews on nights and weekends. I try to stay invisible outside of normal work hours to avoid creating an environment where people feel like they must work as much as I do. I realize that also means it might look like I produce a lot more code during my 40~ hours, but I think that's better than the team receiving non-stop emails and code reviews from me.

I figured I'd work hard while I have any bit of youth and energy left and relax later in life.

jsaxton86 11 hours ago 2 replies      
Most of the comments in this thread are ridiculous.

Just as you (hopefully) get to choose how many hours you work, your coworkers also get to choose how many hours they work.

I'd ask yourself two questions:

1: Are you happy with your current work/life balance?

2: Can you achieve your career goals at your current workplace while maintaining your desired work/life balance?

If the answer to either of those questions is "no", you should have a conversation with your manager.

notahacker 10 hours ago 0 replies      
How to handle him? Ignore him.

If the company evaluation process is so bad that one person on a team signalling - plausibly or otherwise - how hardworking they are with a few late emails reduces your salary raise then you should probably consider moving to a different company anyway, depending on how much you care about that raise. It's not that individual's fault the process is broken, and that individual changing their behaviour isn't going to fix it. If the company process isn't that bad or nobody in management bothers to read the timestamps on his emails when they read them the following morning anyway, then who cares about his showing off (or unusual pattern of organising flexible work)?

tbh if you have remote email access and sending the odd late email actually counts in your favour, and you actually care about the internal politics of appearing to be harder working than you actually are, it's not that difficult to hit the send button on an email you drafted in working hours after you've sat down at home and had your dinner. Or use a plugin to automate the process with some email systems.

3pt14159 11 hours ago 0 replies      
Sun Tzu: When you cannot win the battle, deny the field.

Switch teams or departments, or mention to your manager that you're getting discouraged by how the incentives are set up in your company. Most managers are happy to have a hard working team member, but not at the cost of their other 5 good team members leaving or getting discouraged.

brudgers 11 hours ago 1 reply      
To me:

1. If there is a direct correlation between hours worked and productivity for the team, then compensation is not relative.

2. To the degree that emails late at night is cast as toxic office politics, so are attempts to normalize the productive efforts of the coworker.

3. Pathologizing a coworker as 'workaholic' delegitmates the person and their values. It tends to provide an excuse for treating the individual poorly 'for their own good' rather than accepting the individual as what they are: a hard worker.

ChuckMcM 11 hours ago 0 replies      
In my experience managing people I find a much prefer predictable, low noise, task completion. Every time someone who reports to me sends something I have to read it because it might be a critical issue that needs to be immediately addressed. As a result I appreciate folks who limit their off hours communication to more urgent matters, and I would rather something be done, as committed too, in a couple of weeks to someone trying to get it all done in a week or less.

But I also try to establish that understanding with folks I supervise early on. I have known managers who use someone in their group who is really over working to "get everyone to be more productive" (usually by praising the level of output of the over working employee). It always blows up the team in my experience and they wonder why nobody wants to work for them.

Yoric 11 hours ago 1 reply      
In my experience, workers send emails late at night to explicitly demonstrate that they work more than others. I believe that it's unhealthy and it's pretty clear that it's not correlated to work quality.

This may be due to any number of reasons from proving false a manager claiming that they don't work to impostor syndrome to office politics to actually compensating that they don't really work but that's probably something you want to address directly with the mate. That's also a reason for which a number of places/teams I've worked at/with tend to normalize reports to once per day or once per week. That and the fact that managers just can't cope with twenty reports per night.

You also want to address the issue with the manager and make sure that you are not judged by number of emails but rather by actual impact. If that fails, you're probably working in the wrong place.

P.S.: When I write "in my experience", I've been the "worker who sends emails at all hours of night", in my case because of an abusive manager and an ongoing burnout.

johnwheeler 11 hours ago 0 replies      
You'd be surprised how little weight hard work carries relative to positive attitude coupled with an acceptable amount of work (former manager here).

Performance reviews aren't usually that objective. If you're getting dinged, it might be a problem with your attitude vs your performance. It's unfair, but you're working with humans, not vulcans.

Said another way: If management likes you personally, and you work hard enough, you're not going to get bad performance reviews.

If this coworker is a ball hog, that's a different story, and management will pick up on it over time. The best thing you can do in the meantime is worry about your own output and do good work with people who do want to work with you.

JoshTriplett 11 hours ago 0 replies      
The problem isn't that your co-worker works much more than the rest of the team. Based on your description, it sounds like the "relative performance" evaluation has a serious flaw in it. For the purposes of raises, bonuses, and stock, you should be compared to your peers at a comparable level of promotion only, not against people at a higher level. Likewise, for the purposes of promotion, you should be compared to your peers at the level you'd be promoted to, not people multiple levels higher. If your workaholic colleague has received a promotion, then after that happens they should be at a level where the rest of the team's compensation and potential promotions no longer depend on the now-promoted person.

If your company's evaluation doesn't work that way, you need to have a talk with management about why it should.

(Also, if your co-worker is working long hours but not actually more productive, and your management can't tell the difference between those two but you can, you may need to have a conversation with management about that too.)

jacquesc 11 hours ago 1 reply      
From a fellow workaholic:

Talk with him and see what really excites him. Suggest that you work together with him on an open source side project (possibly related to a something your team is building). A piece of the project he can get excited about and occupy his excess energy.

Help him promote it so he can get him some recognition / feedback outside of just the internal company employees. And your team might still get some additional benefits from the open source project he's working on.

isidoreSeville 11 hours ago 2 replies      
Well your relative performance is worse, so either tolerate that or work harder. Nobody's work-life balance is someone else's decision to make.
znpy 6 hours ago 1 reply      
I am reading so many different opinions here.

I wonder what would you all reply to an "Ask HN" thread like "I am working day and night and sending emails even outside business hours, but my colleagues do not reply unless it's business hours and that is really bugging me".

Btw, did you all consider that maybe that guy just needs or wants really hard that promotion or that salary level-up and is "just" working as hard as he can towards such goal? He/she/They might have duties you do not have (kids, family members, health expenses or other stuff).

@OP: I'd say, as long as you feel honest about your output and feel you're working fairly hard for your company you are okay. You might just want to take a break and think if there is any way to improve/optimise your output.

rohit6223 10 hours ago 1 reply      
In my opinion, you need to understand the difference between hard work and smart work. Software development is like an art. A person may spend 18 hours a day to create something that just works while another may spend just 8 creative hours to create a masterpiece. There are many disadvantages of being a hard worker / workaholic:

* The expectation of your manager will get elevated and if one fails to be consistent in working for long hours, it's a negative.

* One does not have much room to accommodate something else at times of need. Think of an outage, you have already worked for 18 hours and fail to deliver at that crucial time.

* It's very difficult to innovate in an insomniac state.

Remember, doing hard work is easier that smart work. It requires much more learning and thinking. But, if you are able to do it, you will be able to contribute much more.

Appraisal based on relative performance: This sounds logical. If a person contributes better to the company's goal, he/she should be appreciated for that. Think yourself being that person it should make sense.

Note: I am not taking the political aspects of your office into consideration. If your manager loves late night availability, long emails at weird hours, it is his weakness. Probably, you can be smart and automate sending 'corporate bullshit' emails at night ;)

Or just find yourself a right workplace.

allendoerfer 11 hours ago 2 replies      
Create your own company and hire the guy.
Gigablah 11 hours ago 2 replies      
The whole team bands together and gives your teammate their full support, so that he/she is promoted into management as soon as possible.
ensiferum 10 hours ago 0 replies      
It's not about working hours but your value proposal. You can't compare yourself to him in hour to hour comparison unless you work some mundane job where your appreciation and productivity is only measured in terms of hours of work put in.

Since it seems like you want compete with this guy but not put in the hours (and I don't think you should) you need to work smarter. Look up some posts about value proposals and find a way to increase your value for the team. I.e. focus your efforts in increasing your output per worked hour.

deepaksurti 10 hours ago 0 replies      
>> I am been rated above average in the current appraisal system...But after advent of this colleague, I see everything declining...as "irresponsible"

I see this as a huge red flag. It is clearly evident that you may not be marked above average for the next appraisal. Obviously being marked as irresponsible shows that the upper level is expecting you to work like a donkey!!!

I would just start preparing for my next move.

>> Changing job would be resetting all the good will and trust that I have built here.

To this, I can say from experience, that our job is to look for the next better job. While this is a bit sarcastic maybe, but really, as we know, that companies won't think of that goodwill when the next round of letting go people comes along. And going by your description, your goodwill is because of your quality of work, so if you plan/prepare/put the efforts for the next move while you are in this job, you will really be better off.

>> I don't really want to portray my peer as bad(He is mostly nice on the face),

Most likely and I think you imply politely that he is not nice really and he understands the game being played and is playing it. You don't want to play that game, which is fair enough, but you will lose as a consequence.

So overall, just my opinion, is that now this job is no longer the right fit and moving on seems the most sensible thing to do.

jstandard 9 hours ago 0 replies      
Welcome to life. A place where there is always someone who works harder or smarter than you. If your workaholic colleague is bringing more value to the company, she should be promoted faster and receive larger compensation than you.

The key word here is value. Take a big step back and consider what value your colleague brings to the company. What "jobs" and "roles" does she fulfill within the team? Is she staying up late fixing random bugs or doing things others don't want to do? Is she staying late making sure a release goes well or delivering insights to execs to push the product forward?

You used the phrase "stuck with" which suggests negativity and possibly a sense of "it's unfair to me". Is she actively working against the team or is she outperforming others?

Consider what value you bring to the team. Do your manager/people in charge of your compensation recognize the value you bring?

As with most "soft skill" conversations the details of a situation are key.

0xmohit 9 hours ago 0 replies      
If you're working at a place where your "performance" is determined by the number of emails that you send at a given hour of the day, then you'd do yourself good by finding an alternative.

(If you really love the place and want to fight your "workaholic" team mate, start scheduling a couple of your emails at random times during weird hours.)

happy-go-lucky 9 hours ago 0 replies      
This discussion reminds me of something an Indian poet once said. Its along the lines of: No country has any proud history. The entire history of human race is awash with habitual exploitation of others.
bdcravens 10 hours ago 0 replies      
The problem isn't your co-worker, it's the company and how they relatively value that. I'm definitely a workaholic, but my coworkers who work "normal" hours are equally valued. (but we're a small company, so we don't have a rigorous review process, and soft skills are highly valued)

In general, and true in my situation, when you work crazy hours, other aspects of your work life may be subpar (for instance, another team member may be a better communicator or a thoughtful architect)

MPSimmons 6 hours ago 0 replies      
I think it's really up to the manager of the group not to normalize the workaholic's behavior. It's possible to not let someone "break the curve" while still appreciating the extra work that they put in.
throwaway_45 4 hours ago 0 replies      
You want to stop people from working too hard because they want to get ahead? This is like un-american.
rsmsky1 10 hours ago 0 replies      
Sometimes people just wake up in the middle of the night and have trouble falling asleep so they send emails or do other boring stuff, so they can fall asleep again. I've done that on occasion. If it were me, I would just concentrate more on my job and less on what my coworkers were doing.
sidcool 11 hours ago 0 replies      
I have met people that have God complex. They feel that things cannot run without them.
gnicholas 9 hours ago 0 replies      
Don't assume that late-night emails/updates are bona fide. I've had colleagues who bragged that they would write emails during the day and then send out late at night.
dmourati 11 hours ago 1 reply      
Hint: emails to execs throughout the night are mostly unwelcome.
rokhayakebe 10 hours ago 1 reply      
Send Later plugin. Write emails and set them to go at 1:15AM, 2AM and 4AM.
jsprogrammer 11 hours ago 0 replies      
Changing jobs doesn't reset good will and trust. When you change teams, you get to build even more good will and trust with others.
kelvin0 11 hours ago 0 replies      
Changes jobs.
What Linux Ultrabook do you suggest?
7 points by daddyfix  7 hours ago   14 comments top 7
jshupe 8 minutes ago 0 replies      
I got a xps 13 in 2012 and it is happy with 16.04 - my only reason to upgrade would be for longer battery life, less fan noise.
Solinoid 3 hours ago 0 replies      
XPS 13.

That said, I haven't had much luck getting the usb-c dock working 100% correctly with Ubuntu 16.04. Going from laptop to attached to a separate monitor and peripherals works, but workstation to laptop more often than not will leave me with the laptop still 'seeing' the external monitor and treating the laptop monitor as the secondary display.

zck 1 hour ago 0 replies      
I don't know if it counts as an ultrabook, but I'm enjoying my System76 laptop. There are a few different models, depending on what size you want.
mtmail 5 hours ago 1 reply      
This discussion is 7 months old but has some useful comments https://news.ycombinator.com/item?id=11353245
aprdm 5 hours ago 1 reply      
I was doing the same search some time ago and the final contenders were:

Lenovo t460 (or t460p)Asus UX305ADell XPS 13 Dev Edition

However I ended up not buying any of those.

I had bought a toshiba i3 with 8 gb of ram 2 years ago for 300 and I didn't felt like any of those laptops would give an improvement worth the price.

Laptopts are a little bit stuck it seems. I sincerely tried to buy one but just couldn't justify... I am running Ubuntu 16.04 perfectly, everything just works.

RustyRussell 3 hours ago 1 reply      
I was delighted with my ASUS UX305UA for 5 months, now it's been in and out of repair for 1 month :(
mbreedlove 6 hours ago 1 reply      
I've heard the Dell XPS is the best if you're looking to run Linux.
Ask HN: To those who became fluent in a second language, what did you do?
174 points by snowdragon  1 day ago   182 comments top 96
alphydan 13 hours ago 4 replies      
There is no substitute for living in the country and avoiding your native speakers like the plague. Immerse yourself completely (take a few language courses, move in with locals, make an effort to avoid English speakers at all costs). Give yourself little challenges: Groceries, info about the train, museum, read a leaflet, book an activity, ask questions at a restaurant (even if you don't quite get the answer)...

People will want to practice their English with you. Be stubborn. Reply in the foreign language and let them talk in English.

For the first 2 months you will feel incredibly tired at the end of each day. Your brain will fight to stay afloat but that stress will make it learn so much faster. Around the 3rd month something clicks and you start to talk more and more. After that, the progress becomes almost automatic. Try to study something, or work or be part of some local group.

One key element is to avoid perfection. Understand that you will never speak perfect grammar for years (just like kids make silly mistakes, you will too). Embrace it, have fun, make mistakes ... enjoy the trial and error discovery and the challenge of communicating ideas with rudimentary tools. Be patient. You will get frustrated because your brain has complex and nuanced ideas but your language is as basic as "me not good" or "me good". You will learn that body language and tone already communicate more than you can tell with your basic language.

After a year you'll be pretty fluent (You'll be able to hold a conversation with anybody, on any topic, but still peppered with clarifications and questions). Mastering a new language would still take many years (with lots of reading, writing, talking, etc).

(source: I speak French and Spanish as native languages, English as third language and German as 4th which I learnt as an adult living in Germany for a year)

cgag 19 hours ago 3 replies      
I think the guy from fluentforever has the general pattern down correctly:

1) learn phonetics and pronunciation

2) learn a base of of the most common words (he has a list of 625 words, I think wikipedias "simple english" word requirements would be another good source). Do this with anki.

3) start studying grammar

4) move onto native materials (while continuing with anki)

I also think that most people massively underrate vocabulary study. With consistency, at only 15 words a day you could deeply learn ~5400 words a year with anki. I think it would be pretty easy to do more if you were dedicated, but 15 is pretty sustainable. The rate you tend to be taught vocabulary in college level courses is crazy low.

[0]: http://fourhourworkweek.com/2014/07/16/how-to-learn-any-lang... I swear this guy isn't the type of charlatan you'd expect to be associated with Ferris.

I hope this doesn't feel too spammy but I'd love if people had any feedback on the basic idea behind the tool I posted here: https://news.ycombinator.com/reply?id=12717657

dvcrn 23 hours ago 4 replies      
I'm fluent in German, English. I'm living in Japan and am almost fluent in Japanese and quarter fluent in Korean. I also recently started Hungarian and Spanish.

The most important part in my opinion is to live in a country that speaks the language you want to learn. You have to immerse yourself as much as possible with the culture and language.

Also very important that you aren't afraid to try to use what you learned. Even though it's very basic, you learn a lot by actively trying to understand and use the language. It might be tiresome and frustrating at first, but you will learn crazy fast. What I mean with that is: Change your OS to that language and accept that you don't understand anything at first. Make internet friends and refuse to use English with them even though you have to translate every second sentence. Every time you see something you don't know, try to understand why it's written that way.

Lastly, if you have time and money: Do a 6 months ~ 1 year intensive every-day language course in the country that speaks the language you want. By doing that every day AND surrounding yourself with the culture + language, you will be able to speak after 6 month and become very good with it after 1 year.

On languages from a similar family (speak: English <-> German <-> French <-> Spanish || Japanese <-> Korean), you can get pretty far by buying books or doing internet courses.

For words, I prefer the spaced repetition method of tools like Anki. Important here is that you only create flashcards for words that you personally encountered to allow your brain to make connections to where you saw that word. Don't learn from wordlists.

ekidd 23 hours ago 2 replies      
I learned to speak French starting from scratch in my 30s, while living in the US. I speak it well enough to enroll in an easy college-level course intended for native speakers[a] or to work professionally[b], although either experience would be painful at first.

For me, the process occurred in three phases:

1. Bootstrapping to the point where I could kinda-sorta read books and kinda-sorta carry on conversations. I personally used Assimil for this, which is excellent if you like learning by osmosis and you can spare 20 to 40 minutes a day for 5 months. Nine out of ten "language learning" apps just encourage you to screw around at this level with minimal progress, but if you just focus and get it done, it should only take a couple hundred hours (assuming you already know a vaguely related languagefor an English speaker, French is easier than Japanese).

2. Using the language (as best I could). I read about 2.5 million words and watched about 15 seasons of television shows. This took my comprehension from vague and dodgy to automatic and nearly complete. I also spent many hours speaking, and I wrote a few dozen short texts which I had corrected.

3. Gradual improvement. I speak French every day of my life now, but my rate of improvement has slowed down because I don't currently need to be any better. I mostly talk to the same handful of people. To get better, I'd realistically need to work for a French-speaking company.

[a] I've taken an online statistics course for French speakers, and the language was rarely a problem.

[b] I've had multi-hour technical conversations with French-speaking programmers while debugging code.

jjgreen 18 hours ago 2 replies      
Get films in the language and watch them with subtitles (in that language). Read novels as soon as you can. This is hard to start off with, stopping every couple of lines to look up a word, once you get down to 2-3 words a page that you don't know then start reading without a dictionary, skipping words you don't know (humans are great at interpolating meaning). Just those 2 get you half-way to fluency. For the rest, I think you really need immersion.
imron 13 hours ago 0 replies      
I'm a native English speaker, who now also speaks, reads and writes Mandarin.

The number one most important thing in my opinion is regular, consistent practice over a sustained period of time.

So long as you are using decent materials (there are plenty for whatever language you are learning) and as long as you have incorporated some sort of feedback mechanism to spot mistakes (recording yourself speaking, speaking with native speakers), you'll slowly but surely make progress.

Regarding time, I'd say it took me about 5 years to get comfortable with the language (including reading/writing) such that I could conduct myself in Mandarin in a given situation without worrying that my language skills (or lack of them) would trip me up.

Agentlien 14 hours ago 1 reply      
I live in Sweden, which means I've had to study English since I was nine years old. Disregarding that, I also speak fluent Dutch (with a Flemish accent).

The way I learned Dutch came from having a long-distance relationship with a girl from Belgium. When I was visiting her on vacation her family would speak Dutch with one another at the dinner table and I would sit and listen. In the evening they would watch TV. Sometimes we would sit with them and I'd look at the subtitles in Dutch and try to map that to the English audio. At this point I didn't intend to learn the language; I simply saw it as an intellectual challenge to see how much I could make out. At times I'd even join to watch a programme in Dutch. I found that very helpful since they always had subtitles turned on and this helped me with one of the more difficult parts of learning a new language: parsing the steady stream of sounds into words.

Through this simple manner of absorbing the language I started recognising an increasing portion of the vocabulary. Once I felt comfortable forming a few simple sentences, I asked my girlfriend's mother to speak Dutch with me. She was all too happy to use her own language, rather than being forced to use English.

Once I felt able to speak in a limited manner about a few everyday topics (and I was living in Belgium as an exchange student) I took a course called "Dutch for foreigners". This was great for learning grammar.

Finally, after a year of living in Belgium I moved back to Sweden and my girlfriend soon followed. Since she had to speak Swedish all day at work I suggested that we would speak Dutch at home. That way she got to use her own language and I got to practice my Dutch.

We have now lived together in Sweden for five years, we're married and since Dutch has become the language I use at home I've found it difficult to remember to use Swedish when speaking to our son.

afriday11 6 hours ago 0 replies      
I went from no Mandarin skills, to managing teams in the language over a few years. Here are 3 things I learned along the way about language learning:1. Pick a method and stick with it - at any given time I was doing flash cards to practice vocabulary, working through a grammar book, and listening to a language learning podcast, Chinesepod. Every now and then, I tried new methods, but generally, once something worked I stuck with it until I felt it wasn't working anymore.2. Habit - Every morning I woke up and completed my flashcards. Every day I reviewed my flashcards at least once during my break at work. Most days I listened to an episode of Chinesepod on my commute to or from work. Most nights I spent 30-60 minutes going through my book and reviewing my notecards/podcast notes. I had a schedule and stuck to it most days (though there was wiggle room when things got busy).3. Don't be afraid to sounds stupid - Whenever I had an opportunity, I would try to converse with someone. Even though I butchered the language for at least 2 years, I got a lot of feedback and practice with pronunciation and tones that I would have missed if I just stuck to reading my books and practicing speaking to myself.

To sum it all up: pick a method and practice daily. You can do this anywhere with little investment beyond 60 minutes of uninterrupted study per day.

krapht 23 hours ago 1 reply      
Everyone I know who has advanced skills in a foreign language spent one or more years in their target country where they had to speak the language daily, combined with a structured language course or class.

Otherwise it is extremely difficult to get the necessary amount of daily exposure to new and novel situations where the language you want to study is used. You can try by watching a lot of foreign TV series and movies, reading books, but those are not necessarily representative of the vocabulary useful in real life.

If you are a US citizen I think the only language you could get fluent in without leaving the country would be Spanish.

mettamage 13 hours ago 1 reply      
Hmm... every comment I read actually talks about making an effort. Let me give some mundane advice.

For English, I didn't have to make much of an effort. I was 12, loved Dragonball Z -- we have subtitled television. I wanted to know more about it, the US was further in the series than The Netherlands, so I started reading English websites even though I didn't understand much of it.

Eventually I got on forums being a smartass that Goku's power level was not xyz because at website abc.com I read it was abc. All the while I was forced to look in the dictionary from time to time. Also, we went on vacation, then you have to speak English or their native tongue, so I always chose English.

I got on more forums after realizing that the English web has more information than the Dutch web. I started writing there as well. Eventually I'd watch English instruction videos on any topic and learned a lot of things. Eventually I'd even watch psychology courses from Harvard while still being a high school kid.

Then I got to uni and some Dutch people had trouble with academic writing or writing English in general. All that I understood from those people is that they haven't been as much on the English web as I have been.

So yea like many of us who learned English as a 2nd language (in order of importance): the web, videos/series/movies, instructional books, vacations, games and music.

Note: if Japanese would've had a roman alphabet and a stronger web presence I'd be better in that too, since anime is kind of 'force feeding' me Japanese words as well.

gozmike 14 hours ago 1 reply      
I speak 3 languages fluently (English, French and Italian)

My mother tongue is Italian, however it's since been superseded by the other languages.

How do you accomplish this? Travel.

You absolutely need to immerse yourself to be fluent. Save your money. Make hard choices. Pick up and commit to spending 2+ years in a new country, society and culture.

It will be hard, but you will get a perspective that is lost on so many: what is the immigrant experience really like? what does it feel like to be victimized or discriminated against (assuming here that you're a white, English speaking American)? what does it feel like the first time you can successfully tell a joke? the first time you can give a presentation? the first time you can seduce a partner?

Get out there snowdragon, immerse yourself!

vanderreeah 17 hours ago 2 replies      
I'm surprised to see no mention of Kindles / ebook readers. I tried reading novels to improve my German, but the physical effort of switching to a dictionary (either physical or web-based) was enough to make reading a chore. With my Kindle, I've downloaded an English-German dictionary and some novels, and now when I don't know a word I just tap it (well, kinda hold my finger down in a ZX81 fashion) and a translation appears. Makes the reading process that much more fluent and therefore enjoyable. If the ease of looking up words makes them a tad less "sticky" in my memory, the quantity of text I'm consuming makes the language-learning experience, on balance, more efficient (for me).
supergetting 1 day ago 1 reply      
I lived in the US for 20 years came here when I was 10. I'm still not completely fluent in English. A lot of the learning came from interacting with others who mainly spoke in English, but in some occasions I still have to make an effort in order to get pronunciation and grammar correct.

In retrospect, what helped me the most in the early days were reading children's books and copying them down on separate piece of paper, and memorizing the most basic vocabularies that all native speakers naturally learned during their childhood years. These alone seemed to have improved reading comprehension and writing skills from level zero to the basic level. At first, try to write down the words in your native language next to the foreign words you are trying to memorize in order to make that initial connection, and later, try to memorize the definitions in the foreign language itself. I was using just pencil and paper throughout this process I wasn't even aware that I could've used computers to do this at the time.

Fast forward to teenage years and up to early 20s, listening to podcasts and audio-based grammar courses helped with refining speech. I used to repeat after every sentence and even respond to questions that the hosts asked their guests in some radio shows as if the hosts were asking me the questions.

In regards to expanding my knowledge of vocabularies, I used to spend hours every week memorizing SAT vocabularies, but nowadays I try to use the new vocabularies that I come across as soon as possible in real conversations.

For now, I think you should focus on memorizing words for the things that you encounter most frequently every day, in addition to learning conversational speech rather than diving deep into the nuances of grammar and trying to cram all the vocabularies you can get your hands on into your brain. It's a long and arduous process yet very rewarding, and IF you're a coder, you might know that there's a narrative by Peter Norvig to set a long-term goal (up to 10 years) in learning a programming language I think the same goes for spoken languages albeit it may take much longer to achieve an adequate level of fluency. Good luck.

avadhoot 8 hours ago 0 replies      
I learned German in 1 year and landed a job at Siemens where I served German customers in German (and not in English!) How did I do it?

There are multiple ways which can be used together to get the best way. Totally depends on the learner. Here are some of them:

1. Find a good mentor and you're half way through.

2. Join a good institute e.g Goethe Institute for German, Alliance Francaise for French. They have great sources of knowledge and know exactly how those languages are taught.

3.If you have basic knowledge of the language, start listening to simple Radio clips. It helps you improve your pronunciation. Or simply go to youtube and see/listen to the videos. There are many well-known resources and also some reading material on the net. Jump according to the needs and levels.

4.Try to find the meaning of every single word you come across. Use the dictionary for German, French, Spanish, and more. Keep google translator as your last option.

5.Finally, it is a language. It does take time to learn. Have some patience. Enjoy every bit of it and go ahead.

Best of luck. :)

molteanu 21 hours ago 0 replies      
I'm native Romanian, fluent English and medium German. I've learned both on my own. School was terrible for learning anything.

Read, read a lot. But not hard-copy books. Read short articles. Read something you're interested in and already have some knowledge of. Technical stuff is easier than literature. No metaphors, no hidden meaning. You might not understand much in the beginning, but that's ok. If you at least get the gist of the article, you're good to go. It keeps you interested. Install the "Wiktionary and Google Translate" addon (if on Firefox, or similar for other browsers). Double-click a word to pop up it's definition. Or select whole sentences to instant-translate them. Every word definition is a click away. The more you see, the better you become.

Watch your favourite tv show with subtitles. If the tv show is in English and you already know English, that's all you need. Put on the subtitles in the language you want to learn and see the magic happen. You'll pick up words and expressions in no time. Dramas/thrillers work better than comedy. Comedy is usually fast-paced and has complicated expressions. Recommended: Dexter, Breaking Bad, SOA, etc. Not recommended: Friends, Big Bang Theory, etc. You get the idea.

It takes time, but it's better than learning all the grammar before you even have the chance to use the language. It's like learning the geometry of the hammer without ever using it. A little grammar right at the beginning might help, of course. But don't stay too long in that corner.

h1d 18 hours ago 0 replies      
If possible, learn it young.

I learnt English at the age of 10 (which was best not to have any negative influence on the primary language as well), when I stayed in Australia for 3 years only but it stuck with me even after 20 years when my parents got much less confident in the language today. (Partially thanks to Internet where I could expose myself to English daily since then.)

As for pronunciation, I can still make converstation with natives as I kept reading English vocally when I read online materials to this day. I think it's very important to keep your tongue and mouth remember the flow by actively speaking if you are no longer in a position to talk with natives.

That plus the fact knowing the culture and the people in foreign country really makes a difference as an adult because you're no longer "afraid" of them (I especially feel this attitude in my country as a Japanese), those experiences have been such huge additions to my life, I'll be taking my kid abroad at certain age when I get one.

zhte415 1 day ago 1 reply      
Live in another country, and in an environment where English wasn't an option 80%+ of the time.

But when there (here) structured learning in the form of a few books to round-off vocabulary/grammar and a few lessons mainly to track progress and give feedback helped hugely in going from basic to intermediary. Pleco dictionary and flashcards for 1-2 hours per day also very useful.

whym 23 hours ago 0 replies      
A long-time English learner here.

I'd say variety is your friend. I don't know any learner who has mastered a language by sticking to a single technique. You would do everything, maybe with varying levels of comittment - read textbooks, take classes, do flashcards, do speech shadowing, talk to native speakers, watch movies and TV programs, etc.

After becoming able to say what I want (more or less), participating online discussions in the topics I care has been useful for me. It taught me how to structure longer chunks of text to express more complex ideas - you would be surprised to see how often sentence-to-sentence translation fails (between Japanese and English, at least).

If you are starting as an adult, native-level pronunciation would be difficult to achieve, even if you invest decades into it. I have almost given up on that front, and instead am focussing on how I can make my pronunciation less misunderstood. Part of that is to pay attention to vowels and consonants I'm not good at (or to use easier-to-pronounce synonyms where possible).

rhlala 5 hours ago 0 replies      
-Listen a lot, you should aim listen and understand almost perfectly standard day to day conversations, before worry about being fluent, You cant be fluent(and correct phonetically) if you didnt ear the word many times, (and by diferent people). And you need to understand perfectlly, it means fast, if your brain is slowly thinking about how to speak, your mouth will be too, So listen and understand well first.

-School might be good for the first basis, forget it soon (at least for easier languages).

-Find something interesting in this language, about your work, about your hobby, looking local series helps a lot, language+cultural.

-Be around people who dont speak your first language.

happy4crazy 14 hours ago 0 replies      
I've been teaching myself French (from scratch) for the past two years. I read nearly as well as I do in English, and I listen well (some slangy television dialogue is still a bit tough).

Some things that have worked for me:

0. Goes without saying, but consistent effort. I've done at least a little French every day for the past two years.

1. Reading a lot. I started with the Harry Potters and now read for pleasure pretty much exclusively in French.

2. Reading on a Kindle. Instant dictionary lookup! This is such a big efficiency boost that I think that reading physical books is simply a mistake.

3. Listening a lot. I listen to about an hour of French podcasts/youtube channels a day.

4. Studying grammar. I mainly study grammar when I run into something tricky while reading, but I really do study.

5. Flashcards. I've only started making them in the past month or so, but yes, they really do work. I feel silly for not realizing that sooner. I highlight interesting words/expressions as I read and periodically dump them onto index cards.

jondubois 18 hours ago 0 replies      
I moved to Australia from France when I was 11. I went to school and didn't speak a single word of English. Initially (for the first 6 months or so) I had no idea what people were saying and it created a lot of awkward (and tense) situations at school. Especially when teachers asked me a question and I couldn't respond and had to resort to facial expressions and hand waving to let them know that I was completely lost.

I think I understood most of English (and could do basic talk) after 6 months but I really started speaking properly after 1 year. It was pretty intense.

Now I'm in Moscow (Russia) - and I feel like it's the same thing all over again; I don't speak a word of Russian. It's harder to learn as an adult; there aren't as many opportunities to learn passively (adults don't talk about simple things like playgrounds, running around, going to the library, eating lunch, etc... The conversations are a lot more advanced so it's hard to pick up stuff).

I still speak (and write) fluent French.

I think the most interesting thing about speaking two languages really fluently is that sometimes I don't even realize what language I'm speaking in... Several times I told my wife a whole sentence in French without realizing (she only speaks English, Russian and Italian).

banashark 22 hours ago 0 replies      

this site is incredible.

The writing is super well done by a guy from Africa who moved to the US, and while in the US learned japanese.

He learned how to speak so well that when he took an interview for a software development job, they asked him for his address (assuming he was japanese) and didn't believe that he wasn't from there.

The site is not just for japanese. Most of the info is general (and uses either japanese or chinese as examples). I recommend it to everyone.

mlenny 13 hours ago 0 replies      
I've studied both Spanish and German extensively, even living in countries that speak each target language, but have only become fluent in Spanish.

The way I became fluent in Spanish was that I went to a Spanish speaking country and immersed myself completely. I lived with people who only spoke Spanish, joined a local rec sports team, got a job, and took formal classes for 3 weeks (focused strictly on the subjunctive, which is tricky in Spanish) when I arrived. The most helpful thing by far though was having a local girlfriend, aka the "long haired dictionary". If it's an option, having a significant other with whom you speak the target language is a major leg up. It took me about 18 months after being immersed to feel really fluent and comfortable.

The reason I never became fully fluent in German was because although I lived in the country, I spoke a lot of English there. My Canadian study abroad roommate didn't speak any German and I found that most Germans I met spoke better English than my German would ever be, so many times we'd speak English instead of German. I was in Germany for almost a year.

At the end of the day I think becoming fluent in another language takes a solid base of self study and a whole lot of practice with native level speakers. Build your base with Duolingo, explicit grammar study, and Vocabulary (I recommend memrise), and then find a way to practice natural conversation with native level speakers of the target language.

tchaffee 9 hours ago 0 replies      
A lot of folks are saying there is no substitute for complete immersion in a country that speaks the language. While it's true that immersion is a huge help, it's not so difficult to simulate. I learned Italian in Italy, but now I'm learning Spanish outside of a Spanish speaking country. Here's what I'm doing to learn quickly:

1. Conversation exchange sites. You can find native speakers of the language you want to learn who want to learn your native language. Try to get enough language partners so you can do it a few times a week. People will cancel, so book more meetings than you'd like to achieve.

2. Films, TV, Radio, Youtube, etc. Don't use your native language for sub-titles. But do use sub-titles in your target language. Doing this will require a lot of faith at first because you'll understand almost nothing. Stick with it. It's no different than living in a foreign country where you'll also understand almost nothing at first.

3. Change your computer or phone or tablet so the OS uses your target language.

4. Play online games with people who speak that language.

5. Read some of your daily news in the the target language.

6. If you can't find local classes, you can find a teacher who will use Skype.

7. Think about things immersion would give you, and seek them out on the web: menus, street signs, store receipts, bills, product descriptions, adverts.

8. The other methods for learning a language have been mentioned elsewhere but I'll repeat them for completeness here. Duolingo (grammar), Memrise (vocab), Anki (vocab, ability to create your own flashcards) all of which are free. I like to supplement with a listening method like Pimsleur or Michel Thomas which are not free.

If you follow all of the above, put in the hours, and continue to think creatively and seek out opportunities for simulating immersion, you can come pretty close.

maxxxxx 13 hours ago 0 replies      
From my experience teaching German to people who know only English my main advice would be:- Accept that a lot of concepts can't be translated word by word. Speaking another language often means thinking differently- Forget finding and memorizing rules. With enough practice your brain will figure out what "feels right"- Be respectful of pronunciation even if it sounds harsh to you. English speakers tend to swallow a lot of sounds which makes them hard to understand to Germans
jason_slack 15 hours ago 0 replies      
I am a native English speaker, age 39. I am learning Mandarin right now.

1. I am taking classes at my local college.

2. I am paying an instructor outside of class to accelerate my reading and writing.

3. I have started making myself write my everyday things in Mandarin. I.e my day planner. Notes. Grocery list.

4. I goto places where there are other Mandarin speakers and just start conversations.

5. If I want to say or write something and I don't know how I look it up on the spot.

6. I try to read websites in Mandarin

7. I make time to study every day

8. I ordered books from China in Mandarin to. Read.

It would be great to go learn in China but it isn't an option for me.

Edit: I forgot. YouTube videos

nichochar 10 hours ago 0 replies      
My story was back in school, and I had never spoken Spanish (but I'm french so they both have Latin origins). I started going out with this girl that was from the Canary Islands, she was fluent in english se we could have just talked in that, but I decided to ask her: "Let's only ever speak in Spanish, and if I don't understand something, first try and explain in Spanish, and if I still don't get it, switch to English".

It worked miraculously, within 1 month I could speak good enough spanish, and by the second month I could go to Madrid and speak with anyone on the street.

It's surprising how effective it is, I even use to catch myself thinking in Spanish.

I think the best strategy is total immersion, however you can achieve that. It takes effort and dedication, but not longer than a few months for a similar language to yours, probably 6months to a year for something harder like chinese or arabic.

_0ffh 12 hours ago 0 replies      
For pure language understanding, learn enough so you can start reading in that language. Then read. It's a great way for knowledge deepening and upkeep.

For pronunciation and accent there's probably nothing better than spending time with native speakers. In that scenario, don't stunt yourself by being afraid of making mistakes. People will understand.

s_baby 21 hours ago 0 replies      
A polyglot marketed his method a couple years ago that makes sense to me.

>But basically: buy a Lonely Planet phrasebook. Learn full phrases off, use them. Get courses like Assimil, Teach yourself, Colloquial and use that for a little bit more of a base. Use it. Practice a tonne. When you are somewhat comfortable in the language, then (and only then) study some grammar to tidy it up. Practice more.[1]

I imagine starting with common phrases and pronunciation cuts through the learning curve.

1. https://www.reddit.com/r/IAmA/comments/y70v0/by_request_i_am...

yodsanklai 14 hours ago 0 replies      
Check out some polyglots on youtube. Some of them keep learning new languages and they have good advice.

I can share my experience learning Spanish (at 40). I practiced every single day for 6 months using a variety of resources. Apps, grammar references, (online) dictionaries, personal teacher, news websites... I think what is important is not so much what resources you use, but the time you put in. You need to find a way to stay motivated for a long period of time, that's the hard part.

How well can I speak after 6 months? Well, I went through most of the grammar of the language, I can communicate (with someone willing to speak slowly), I can read the news but I have a hard time understanding people speaking at a normal pace. Overall, starting from zero, I'm rather satisfied but I expected to be better than that after 6 months (esp. considering French is my first language). It's harder than what I thought.

I stopped learning a few months ago and I'm afraid I'll forget everything pretty fast. Unlike English, I'm not exposed to the Spanish language.

reitanqild 23 hours ago 0 replies      
I speak, read and write english (my second language) fluently although not perfectly correct.

I started thinking (when studying) and even dreaming (when I dreamt about programming, that is :-) in English before graduating because most of my books etc where in English.

In addition to reading lots and lots, one of the small things that helped me a lot was 10 years back or so I used to have an FF extension that let me doubleclick on any word on a webpage to get TFD definition of the word highlighted.

This took the effort out of expanding my vocabulary as I could look things up without breaking flow.

I still sometimes look up words that I haven't seen before although not as frequently as before.

(My problem is for a lot of words, esp. those I don't use at work I can read and write them but I might never have heard them.)

slau 18 hours ago 0 replies      
My mother tongue is Dutch, as that is the language my family spoke growing up. My parents decided to give me a French education (we lived in Belgium then, which made that easier).

I learned English through TV (Flemish TV channels, and some Walloon ones are subtitled instead of dubbed), BBC radio and Linux documentation. I would say I was proficient around age 8. Around age 14-15 I decided to switch my American accent to a more British one.

I lived in southern France for some time, which exposed me to Spanish and Catalan. I'm not able to have a conversation, but I can follow a movie (I watched most of Narcos without subtitles). I took German classes in high school. I had a fair leg up thanks to my Dutch background. I wouldn't say I know the language in any shape or form, but I'm able to understand the rough lines of most written German.

I moved to Denmark about a year ago, took some (paid for by the government) classes to learn the basics. Pronunciation is horrible, but I have a fairly firm grip on the basic grammar, sentence structure (fairly close to Dutch, in the end) and vocab. I still do a fair amount of Duolingo and often ask my colleagues to keep conversations in Danish instead of switching to English. Due to the amount of English loan words in technical conversation, it's fairly easy to follow that. It's the casual conversation that is a lot more difficult to understand.

All of this to say: jump in. Move to another country, and don't rely on any kind of lingua franca to help you out. Watching TV in the language you're trying to learn, with either subtitles in a language you master, or once you've started getting a basic grip, subtitles in the same language as the spoken one.

Another thing you can do is watch English shows with subtitles in your target language. Force yourself to read the subtitles (this can be hard to do if you're not used to it). This helps with common idioms, sentence structure, and everyday vocab.

And read. Read a lot. Every country has a wealth of youth books, that, although not the most fascinating of reads, can be both challenging enough yet easy enough for beginners. Books also have the added advantage that they're asynchronous, meaning you can take time to reflect and research before hitting the next word.

Edit: typo.

hmsln 11 hours ago 0 replies      
Be passionate about the cultures of the countries that speak this language, and read the products of these cultures - articles and books about their peoples, histories, traditions, world views, current events - in that language. This is how I learned English - from the age of 17 onwards I've been passionate about Anglo-Saxon cultures, histories and societies (in particular about the United States) and have widely read about them, in english.

I'll grant you that this is easier if the language you want to learn is spoken in a large, complex country or countries - such as the English, Mandarin, or Spanish.

vcool07 17 hours ago 0 replies      
Well, english is my second language, and I remember becoming fluent at it by reading comics when I was a kid. It was both fun and educational at the same time. Also, I was a 80's kid and it did help that the era/place i lived in did not have much access to computers, video games etc, and reading comics was still considered a fun activity (apart from playing cricket / sports ) !
AlexCoventry 10 hours ago 0 replies      
What's your goal in learning a language?

In most cases, I would say it's pointless at this stage. Machine translation is already much better than most people can achieve with 6 months of study, and it's improving rapidly. I used to love learning languages, but I try to avoid learning things automation will soon be able to do better than I can hope to. On the other hand, if you need to be functional in a foreign language for the sake of some broader short-term goal, it might still be a sensible investment.

memracom 23 hours ago 0 replies      
Did not take any holidays. You need to work on it every day, 365 days per year. Lots of little tricks. Like reading books written for 10 year-olds, by native authors of the language and set in a country where this is the native language. No translations of famous English writers.

Keep track of words you don't kn ow during the day, and look them up in the dictionary every evening. Go out of your way to meet native speakers. When I worked in Silicon Valley, I listened to Spanish language radio stations only, watched only SPanish language TV networks, only read Spanish language newspapers which happened to be free, and only spoke Spanish in stores and restaurants. It helped that 50% of population in SV is hispanic, and I was a foreigner in the USA just like them.

Another trick, after you check the news in English, read it again on the net in your target language. And watch TV series with subtitles in the same language. For instance, I watched Russian TV series with subtitles in Russian. That helped me when my ear could not make out the words. Also, not movies, but TV series because the same characters appear again and again so you get used to their quirks of speech and can learn faster.

Buy a kids encyclopedia in the target language. Don't be afraid to download and read university papers and dissertations in linguistics about your target language.

And finally, get married to someone who speaks the language and raise bilingual kids.

PetoU 16 hours ago 0 replies      
Anecdotally, one girl loved Harry Potter books. After acquiring basic level of foreign language, she would re-read those books in that language. As she knew the story back and forth, new words came to her in very familiar context, and learning was much more effective. I'd be interesting to research more this method !
crypt1d 18 hours ago 0 replies      
I became fluent in English by watching TV shows, movies, etc without subtitles. I even picked up an American accent and people often ask me if I'm from the states :)

I spent some time in Western Europe and I noticed that ,by default, they dub their movies instead of adding subtitles. I think this really affects the adoption of a foreign language as you are a lot less exposed to any other language than your own (outside of school, of course). On the other hand, movies are almost always subtitled in my home country, so a lot of people pick up basic English/Spanish/Turkish just from watching the TV.

Anyways, I think you could benefit a lot from direct exposure to the language itself, without the 'safe zone' that a teaching environment offers. Getting out of your comfort zone and accepting that you don't understand every word being said in a conversation is an excellent catalyst that will force you to learn a language by association and body language analysis, not by just memorising words.

EliRivers 18 hours ago 0 replies      
Start learning the second language and don't stop.

Any and all of the following, in any order, skipping between them when you get bored or want to try something different. This is just a list of options you've already worked out for yourself.

Books (do them properly, cover to cover, answers all the questions and listening to all the conversations on the CD or whatever), specific books on grammr, making your own notes of topics of interest, websites, apps, making up conversation on your own, (paid) skype conversations with native speakers, evening classes, take a holiday there (and maybe take lessons while there on holiday).

The only common link amongst all people who learned a second language is that they started learning and didn't stop. That's the common link. That's how to learn a second language.

Stop spending time trying to pick out the "best" option and just start. Pretty soon you'll have worked out what you enjoy most. Just start learning and don't stop. Start now, don't stop.

pencilcode 19 hours ago 0 replies      
I'm not fluent yet but after using duolingo for a few years (with varying degrees of commitment) I've had a tremendous improvement on my german after switching to lingq in the last few months. It allows you to import texts and you can very quickly look up the meaning of the word. While you do this it creates a database of words you've seen/ learned in context. It also automatically creates flashcards of those you've been exposed to and progressively moves them to a known state. What's cool is that you get a real sense of progress and where you're at. You can attach audio to texts as well and it also keeps tracks of words you've listened to. Anyway that's kept me much more motivated!. But still the gist of it is, read stuff you like in target language, children's books, newstories and hear the same content read out loud. Tv shows with subtitles in the target language are also great.
ofcapl_ 9 hours ago 0 replies      
I'm Polish and I've learned English by taking a 1-1 class for 1 year and.. Playing games in English, watching movies with eng. subtitles, writing a blog in English - now I've started to learn Chinese in the same way - but it's a bit harder due to learning the alphabet (but it's easier that You've might think about it)
niieani 18 hours ago 0 replies      
I speak 2 foreign languages fluently, one of them is English, in which I got fluent by watching shows over the years (mainly Star Trek series and The Simpsons) with and without subtitles (first translated, then original English), and by reading a lot.Hard to say how many years it took, since I was a kid back then, but I got fluent enough to move to and study at the University level in the UK.

The other story is I got a girlfriend speaking the other foreign language (Slovak). We speak English and her language (foreign for me) interchangeably. We also lived in her country for some time. Time we spent speaking, listening and reading her language made me fluent. No special tricks, courses, apps...

Just practice, asking questions and learning.I got fluent in about a year, but bare in mind, Slovak and Polish (my native) share a common root, so it wouldn't have been as easy with something like Chinese or even French.

blindpixel 21 hours ago 0 replies      
As a consequence of growing up in a diverse and multicultural society like India, I am fluent in 4 languages (English, Hindi, Marathi and Konkani). I am currently learning French from Duolingo and Kannada from a language book that I purchased sometime back.

Coming to your question, there seems to be no right way to learn a language except for selecting a learning resource and diving straight into it. Some languages are easy and some are quite hard but the trick seems to be in getting familiar with the initial phrases and then learning the grammatical rules. Grammatical and syntactical rules are like the glue that hold the words in place and I would advise you to focus on them. Talking to people who speak the language (can be quite awkward for the beginner) and reading passages aloud will end up helping you as well.

There is no timeline to this and getting fluent in a language is a function of your efforts and the difficulty of the language you have chosen. If the language that you want to learn is on Duolingo, that's the best place to start.

SimeVidas 10 hours ago 0 replies      
I moved from Croatia to Germany when I was 6 (and stayed for another ~6 years). It took me maybe 6 months to learn the language (I moved to a regular school after 34 months).

I know this is not the answer you were expecting, but I just wanted to highlight how quickly small children can learn a completely new language. If you have kids, consider temporarily moving to a different country :)

lordnacho 19 hours ago 0 replies      
The key is to get feedback. And normally, that means trying to make the sounds while you're young, because people tend not to correct adults when they make a slightly wrong sound.

Hang around kids and you'll notice people correcting their sounds repeatedly. Teachers will show them how to move their tongues, describing just what to do to make a th-sound or g-sound and so on. Go to an adult class and you rarely get that, apart from fixing really coarse issues.

If you're lucky, the easiest way to learn is just to grow up in a dual language zone. I grew up with four languages around me, so I know those sounds. To make it useful, though, you need instruction. You're unlikely to grow up in a place where specialist terms like "magnetism" or "accrual" are used in multiple languages. Also having some classes will clear up the minor niggles with any given language.

manuelisimo 19 hours ago 0 replies      
Moving to a country where they speak the language you are trying to learn kinda helps. I've lived in the US for 15 years. At first I wouldn't even be able to even tell words apart, so listening to a lot of people and trying to make the sounds they were making was my first challenge. Then I knew like 200 words so my conversations were a bit limited so memorizing words was the next goal. And then I would get into more interesting conversations and people would use rare words which everybody seem to know what they meant. And for that you can only read a lot ^_^Then you can get fancy and try to reduce your foreign accent for extra points.But being exposed to the language is a must, hence living in a country where it is spoken helps. My french is kinda awful (I've never lived in france) but I can order food at restaurants which is nice.
maus42 20 hours ago 0 replies      
Depends on your definition of 'fluent'. To speak like a native, you probably need to spend several years in a community where your target language is spoken as primary language. However, you don't need to be fully fluent to passably talk, read and write even on advanced level (like politics or academic subjects).

Find the part of the internet that communicates in your target language. Read and participate. Structured language classes with a professional teacher are helpful, but not sufficient.

Duolingo is nice for very basic introduction and first "stepping stone", but not enough if you want to progress farther than the basic tourist level (at least, not in the languages I have tried it).

After ~15 years studying (both in school and other activities), I wouldn't consider myself fully fluent in English but capable enough to get by in professional context.

Briel 14 hours ago 0 replies      
I listened to a lot of Youtube videos and songs in the language. The biggest impediment to language learning is that it can be extremely boring. If you're learning it through entertaining content, it gets easier.

On http://lyricstranslate.com/, you can find songs translated from and to a lot of different languages. It's a lot easier to remember words when it comes with contextual markers: music, it's place in a line of lyric.

ozzmotik 23 hours ago 1 reply      
Rinse lather repeat.It took about 2 years before I was confident enough in my German skills to consider myself conversationally fluent at a beginner level. I spent four years of devoted study (yes high school) to get the concepts down, and now I've basically tried to maintain it in the 8 years since. For me it was important to focus on syntax and semantics more than vocabulary. It's super easy to find a translation for concrete concepts like "dog", "cartographer", and so forth, but it's rather difficult to find an elegant translation of advanced concepts like expressing conditional circumstances, and all those fun different tenses and voices. Repetition of vocabulary and all that helps to build up conversational awareness, but I find that it's important to focus on how the pieces are supposed together more than the individual pieces themselves. But hey, ymmv
wmeddie 23 hours ago 0 replies      
I know English, Spanish and Japanese. I started studying Japanese in college and I live and work in Japan now. Structured lessons were fundamental in becoming fluent but when I was here I sang a ton of Karaoke whenever I could. It really helped my pronunciation and vocabulary. Definitely recommend signing to learn language.
justaaron 13 hours ago 1 reply      
I moved to another country. Actually, along the way, I traveled to a lot of countries and spent a fair amount of time in some of them, and I credit immersion and a desire to communicate in the everyday language of the locale with my ability to learn over 6 languages after my 30th birthday being previously mono-lingual with English...
pythonbull 15 hours ago 0 replies      
When you're totally immersed in a language, even if you're lost, you'll learn far faster than everyone else.

Scott H. Young's 9 Tactics for Rapid Learning


zouzoun 17 hours ago 0 replies      
Can't for the life of me remember where, but I read a study a few years ago which really helped me understand how social interactions contribute to language learning. Apparently, when children are learning a second language (the study focused on children who spoke one language at home and another at school, or who had recently immigrated), the children who advance the most are not the brightest or most studious, but those who manage to get their entire group of friends/peers/surrounding adults to feel implicated in their learning of the language. The group as a whole works together to help the child learn, group cohesion happens, the child learns better and everyone feels happy for them and proud to have contributed.As an adult, I've definately found that asking one person in a group a question on, for example, the meaning of a word, can lead to a big group discussion where either everyone contributes to explaining it to you (and you get five explanations rather than just one), or everyone realising that they're not entirely sure and looking it up online, discussing it amongst themselves, and then explaining it to you until you have no choice but to have understood. Repeat this process as many times as is socially acceptable.Worked for a while in a friendly lebanese snack bar. Some of the (non Arabic speaking) regulars would often ask my bosses for explanations of the meanings of words, or to explain the lyrics of the song. He would explain, and any Arabic speaking regulars (there were a lot) that happened to be around would inevitably offer their own explanation. Basic Arabic was picked up, falafel eaten, and some friendships happened. Find somewhere you can become a regular of!
poltak 23 hours ago 0 replies      
A lot of software to attempt to make the boring repitition-based stuff more fun, for things like grammatical patterns and vocab. Anki (free) is my all-time favourite. Usually use a popular pre-made deck to learn what's recommended, and then have my own one going which I add a new flash-card to whenever I encounter a new word in my daily life. Review them in the evening. Something new I found out recently is that Anki has plugins [0]. AnkiStrategy [1] is currently making sure I get my daily review in.

Duolingo [2] (free) also helps with getting a grasp on basic grammar and vocab, but doesn't support many Asian languages (Vietnamese just got released and Indonesian is in progress).

Memrise [3] (free) is similar to Anki but has more of a modern, community-based app feel. A lot of great user-generated content.

Skritter [4] (subscription, phone app) helped me a lot when I was learning to write and recognise Chinese characters. They also have Japanese Kanji version.

Software-wise, I am currently learning Vietnamese, and for that using my own Anki deck (30-40 cards a day) and 5 duolingo lessons (adding new vocab to Anki). Feel like I'm making fast enough progress, but I think integrating anymore software to my daily revision routine would be too much.

Then you need a lot of interaction with people, using what you have leant in that language to attempt to communicate. I think this is the most important part and where you'll learn the most. You'll be forced to practise your listening, speaking, drawing on vocab and grammar that you know and have to put mould them into an understandable sentence. You'll make mistakes and look like a fool, but that's just part of the learning process. Try to treat it like a bit of fun, and hopefully the people you're talking to will also.

[0] https://www.quora.com/What-are-the-most-useful-Anki-plugins

[1] https://ankiweb.net/shared/info/1494320602

[2] https://www.duolingo.com/

[3] https://www.memrise.com/

[4] https://skritter.com/

paloaltokid 23 hours ago 0 replies      
An old-fashioned method, but it works: start dating someone who speaks the language you'd like to learn.

Outside of that, watch children's television shows in the language you want to learn, with english subtitles. The language is simple and will help get it in your ears.

Artemix 19 hours ago 0 replies      
I'm french, and I speak fluently english thanks to video games and community forums. But I also started learning norwegian and I'm doing pretty well, talking woth norwegian friends
wushupork 22 hours ago 0 replies      
At different points of my life I spoke Thai, Malay, Italian, French and a teeny bit of Mandarin. I would say the ones I became extremely fluent with were the result of total immersion (living in that country - being fully immersed in it for years).

I've known expats who go to Thailand, live in western communities, associate with other westerners mostly speaking English and deal with locals mostly on a limited level don't get very far. I've also met foreigners who come to live among locals in local neighborhoods and interact with the locals on a daily basis get very good at the language.

I don't think there's any way around it.

jetcata 13 hours ago 0 replies      
Netflix is a great tool for getting started - choose an interesting series in the language you're trying to learn, e.g French, and turn on subtitles in that language (in this case French) - it helps you decipher accents more clearly and gives you an ear for the language.
DrNuke 17 hours ago 0 replies      
Spent five years in the UK after 15 years practising from home, neither native nor perfectly fluent but understood the place and have found my own voice. I can even produce non-trivial poems ehehe. If you need business level only, you don't need to be fluent, just proficient within your field of expertise so grammar, pronunciation, daily vocabulary and deep into your industry slang. Good luck!
vilhelm_s 11 hours ago 0 replies      
I studied Japanese for a bit in college, so I met a lot of people trying to learn Japanese. But the only ones who were actually able to speak it fluently were the ones who had gone an a highschool exchange. Try doing that! :)
dotancohen 23 hours ago 0 replies      
The other comments about speaking the language daily (i.e. living in a country that speaks the language) are dead on. If that is not practical for you, then you can help retain and increase your _vocabulary_ with Anki [1], but it is no substitute for actually speaking.

For Android phones, you can sync Anki with Ankidroid [2].

[1] http://ankisrs.net/

[2] https://play.google.com/store/apps/details?id=com.ichi2.anki...

funkyy 14 hours ago 0 replies      
Most of the people will struggle if they do not think in a given language. I often spoke with people saying they are "fluent". But they weren't and they could not think in English besides small problems. Once you learn to think in a given language - most likely you have became bilingual.
0x54MUR41 22 hours ago 1 reply      
I have been looking forward for this since I asked how to improve the language, especially English [1]. Thanks to the OP for asking this. I am also glad there a lot of people share theirs story or method when learning a second language.

I know it's not only book as the main resource to improve the language. By the way, any recommendation of book or other resource to improve English language?

Thank you.

[1]: https://news.ycombinator.com/item?id=12690479

geff82 18 hours ago 0 replies      
Inread lots of english software documentation and listened to podcasts and thus got fluent at English. I spend the childhood in France and thus became fluent in French. I married my teacher for the Persian language and by spending lots of time with her family and by visiting Iran often, I became close to fluent at Persian (supported by a textbook). Greetings from Tehran :)
natch 23 hours ago 0 replies      
Let's say (for sake of example) that you only speak English, and you are learning some other language.

Several things. The more the better; in combination is best: Physically move to the place. Befriend locals who don't use English. Shun people who do use English. Take classes. Get a job where your coworkers do not use English in the workplace. Use Quizlet or flashcards or some similar tool.

mectors 21 hours ago 0 replies      
I speak 5 languages. In 4 I gave conference speeches, had job interviews and participated in work discussions. The last one I never managed to master to the same level for as much books I read or lessons I would follow. The difference, I never was for a prolonged time in a place where I had no choice but to learn the language.
polotics 21 hours ago 0 replies      
Get a good dictionary of the language in the language and read it a lot. Get some basic grammar and asap use it on unsuspecting natives.For the phonemes that you did not get the chance to assimilate as a child, you're going to have to learn the mouth/throat movements and feelings like a gymnast learns jumps. Hope this helps.
rsmsky1 13 hours ago 0 replies      
Also it depends on what language you want to learn. If you want to learn Spanish you can speak with native speakers who don't speak say English in the US.
curiousgal 18 hours ago 0 replies      
I am fluent in English, French, Arabic and Spanish, the first is my native tongue and what helped with the following two was the fact I started learning them as a child. As for Spanish, it was mostly motivation to keep using it. Learn to think in that language.
dustinmr 13 hours ago 0 replies      
I moved to Puerto Rico at 32. I didn't really speak any Spanish, though I had a few years of it in high school. So I had some familiarity with the grammar. Nearly a decade later, I consider myself fluent, though I know at times I sound funny to native speakers.

PR turned out to be an exceptionally difficult place to learn Spanish (for why, see: http://www.speakinglatino.com/study-spanish-in-puerto-rico/ particularly #2). It took me longer than it would have taken had I gone somewhere that English was not an option, and my biggest jumps forward were on business trips to those places.

When I arrived, I started taking lessons twice a week, and continued that for about 18 months. I spoke Spanish almost exclusively for work, usually over the phone, which is much harder and likely helped. A few years in, I moved to Miami, where I actually speak more Spanish at times (here, social situations are in Spanish, in PR all social interactions were in English) Later, I married an Argentine, and found out that I had to learn a whole other language!

Other things I did that helped:

1- I decided I was going to say dumb things, and that I had to be okay with that. When someone would point something out, I'd laugh. An example, I remember mixing up the words for 'butterfly' and slang roughly equivilent to 'faggot' in American English. I didn't know that's what it meant. I had heard the word somewhere and associated it with butterfly because they sound somewhat similar. Be ready to laugh at yourself, that makes it much easier to just throw it out there and try. And let's be honest, pointing at a butterfly and saying, "Hey look at the faggot" with no other context or offensive intent is pretty funny. 2- Find people to speak with regularly. Daily if you can. The really valuable people are those who will correct you without switching to your language unless absolutely necessary.3- Focus on communicating, not grammar. You need enough grammar to be understood, and you should keep correcting it when you make mistakes, but if you work on communicating effectively with people, the grammar falls into place.4- Have fun with it! Its interesting. Enjoy.5- Learn the bad words too. I used an offensive word above. But its important to learn those words, because that's how people actually converse. You'll learn whole other levels of both language and culture by doing so. Sometimes, its important to realize when someone is being offensive, or even that you're being offensive and don't know it.

But mostly, have fun with it.

mheat 13 hours ago 0 replies      
I came to Canada as a German when I was 8.It took about 3 months to learn English fluently at that age.No tricks, just watching TV and going to school.
nightcracker 10 hours ago 0 replies      
I learned english by playing videogames on the internet. The joys of being young and having a plastic brain.
digitalengineer 21 hours ago 0 replies      
A quick, easy and fun way is to view tv series and films in the other language. You could add subtitles in your own language at first. If it's a difficult language watch something you already saw. The context will help, you already know what it's about.
the_arun 1 day ago 1 reply      
I am assuming you are talking about spoken languages. Necessity and/or Motivation is usually the force behind it
rsmsky1 13 hours ago 0 replies      
I took classes, then studied in another countries, watched tv in that language and spoke and wrote to people in that language.
lumberjack 19 hours ago 0 replies      
>How long did it take you?

Depends on the language and were you're coming from but to get C2 proficiency it takes anywhere from 900 to 4400 hours of immersion according to various sources.

In my experience that's quite accurate.

bigkm 23 hours ago 0 replies      
Haven't become fluent but the trick is to trick your brain into thinking in the other language
redtrucker 22 hours ago 0 replies      
I'm that red haired guy with a trucker hat who knows 9 languages. You may know me from the Internet. The key to learning a lot of languages is total immersion and not being embarrassed for fear of sounding wrong.
aprdm 23 hours ago 0 replies      
For me it was mostly playing games on-line. Having a clan / team where you talk with your peers every day is pretty cool.

I also took English classes for several years when I was young.

Vibrelli 23 hours ago 0 replies      
I worked (illegally) as a restaurant dishwasher at a ski resort in Spain. You'll learn fast if you are totally immersed and need to communicate to work. ;)
enry_straker 17 hours ago 0 replies      
Read wodehouse and watched Yes Minister and Yes Prime Minister to learn english in the 80's
Vibrelli 23 hours ago 0 replies      
I started working (illegally) as a dishwasher in a ski resort in Spain. You'll learn fast if you need to get a job. Necessity. ;)
rsmsky1 13 hours ago 0 replies      
Also pretending not to speak English helps.
lormayna 20 hours ago 2 replies      
Do you have some resources to learn a not so common language like Danish?
csa 11 hours ago 0 replies      

First, you have to define what you mean by "fluent". There are several proficiency scales that may provide some useful insight:

- Common European Framework of Reference for Languages (http://www.coe.int/t/dg4/linguistic/cadre1_en.asp)

- ACTFL proficiency guidelines (https://www.actfl.org/publications/guidelines-and-manuals/ac...)

- Interagency Language Roundtable scale (http://www.govtilr.org/)

Here is a quick-and-dirty self evaluation that can give you an idea of the range of what "fluent" can mean (http://www.govtilr.org/Skills/readingassessment.pdf).


The next question you have to answer is what proficiency level are you aiming for.

Most of the resources you listed are fairly good at getting a learner to a low level of proficiency (CEFRL A2, ACTFL Novice High, or ILR 1). Just try one or two and find the one you like doing (I am a fan of Duolingo, but ymmv). This level is roughly "survival mode" language (e.g., basic introductions, basic getting around and doing things, short and simple small talk). If your goals are higher than that, then then the process is less transparent, but it mostly involves working with authentic native materials (texts, videos, audios, etc.) and learning through interaction with those materials. Note that it is almost impossible to get beyond a very low level of proficiency with books alone -- the scope of language that would need to be covered gets too large too quickly. As your proficiency level increases, language learning texts become reference sources rather than primary sources of learning.

The steps of fluency roughly look something like this (using ILR scale for simplicity):

- Memorized words and phrases (ILR 0+).

- Short, simple sentences (ILR 1). Many/most Americans I know consider this to be "fluent".

- Basic paragraphs (ILR 2).

- Extended prose (ILR 3).

Most of the suggestions I see in this thread focus on ILR 0+ and ILR 1. There is an entire world of language and language learning beyond that. Note that I stopped at ILR 3 -- that's the level at which a person can fully function at a professional level in most contexts. Day-to-day life is largely conducted at the ILR 1+/2 level.


How do you want to use the language? The four skills are reading, listening, speaking, and writing. The first two are receptive skills that develop faster than their productive skill counterpart. Note that materials that are really good for developing one skill (e.g., reading) might be much less effective or even slightly counterproductive for learning another skill (e.g., speaking). That said, it is usually good to develop all skills at least somewhat while focusing on the skills you are most interested in (i.e., if you want to read, don't just read -- learning some speaking and listening will help the development of your reading).


Another question is how much time do you have to dedicate to learning the language. Some languages are more linguistically distant from your native language than others, and the more distant languages take longer to learn. Here is a scale used by FSI with languages and hours of instruction needed to get to ILR 3 in one skill (usu. in speaking):


Note that the range of time required is large -- 600 hours in 6 months for Spanish or French, but 2200 hours in ~20 months for Arabic, Chinese, Japanese, or Korean. To put that in perspective, when a talented learner of Spanish is functioning at a full professional level, an Arabic learner who started at the same time will typically be functioning at a touristy sentence level.


Maybe this is a tl;dr. I am not sure that it makes sense without the above context. Note that at any time, traveling to or living in a place where the language is spoken will help tremendously. Also note that having a native informant can be very useful -- italki is a great resource for native informants.

1. Assuming you want to learn a relatively commonly taught language (e.g., something like Spanish or Korean rather than something like Xhosa or Igbo), pick any learning source that you like and stick with that. You will learn the sounds and script of the language as well as memorize basic words and phrases. You will eventually be able to create short, simple sentences that may or may not sound native-like. This is about ACTFL Novice or ILR 0+ or 1 level.

2. Start looking at level-appropriate native texts, and use learning texts as references rather than primary sources. Lower-level texts might be things like ads, announcements, or parts/clips from videos that cover casual conversation. Higher-level texts might be newspapers, non-fiction books, most general interest TV shows (i.e., not ones on opinionated and/or abstract topics like politics or religion). Flashcards can be useful (esp. for specialized vocabulary in a field you are interested in), but you will want to move away from flashcards and memorization gradually. You will need to immerse yourself in the language as much as possible to approach full functionality. This does not require you to be in a place where the language is spoken, but that usually helps a lot. This will get you to the ACTFL Intermediate or ILR 2 level.

3. To go beyond step 2, you will largely need to start functioning like a native. Your day-to-day socializing and media consumption will be almost entirely in the target language. The reference texts you typically use will be the ones that are written for native speakers of the language you are learning (e.g., a Japanese-Japanese dictionary). This is ACTFL Advanced or ILR 3 level.

wepple 13 hours ago 0 replies      
duolingo, weekly classes, then spent 3 months in the destination countries [spanish]
dorfuss 14 hours ago 0 replies      
Do you remember the 10 000 hours principle, popularised in Malcolm Gladwel's Outliers? Well, it comes from research by Swedish-American scientist, Anders Ericsson. I talked with him. He says that there is no precise, scientific definition of "fluency", so you actually cannot construct an experiment that could determine which method works best.

In short: to reach moderate fluency at B2/C1 level, learning any language, would require a couple of hours every day for about 3 years. But there is -NO- optimal method!

I have put a considerable amount of effort to research this question as a semi-professional (currently studying applied linguistics) and for my own private use.

I've reached fluency in English (and to a lesser extent in Hebrew) as a second language. I've also learned and sometimes use Spanish (learned at a university), German (high school, I live in Germany now), Danish (university), French (high school), Ukrainian (university), Italian, Latin (high school), Classical Greek and Aramaic.

People studying full time Chinese, Arabic or any other language get their BA in 3 years and are quite fluent. It often requires about 10 hours a day of work (classes, reading, drills). It's hard. No short cuts.

On the other hand, however, I'd say that you need about 50 verbs and about 200 other words with almost no grammar to communicate. Where I work I speak Portuguese (a language I don't know!) German and Spanish with a girl from Portugal who speaks only Portuguese. The notion of "learning" a language is a construct of our education system. Grammar is almost useless is day to day communication. You only need both sides to wish to communicate, and there has to be no superiority and inferiority in the relationship. Somehow a natural "pidgin" grammar emerges spontaneously - you may not know past tense, but then you say simply "yesterday" + infinitive and it works perfectly well. The more I talk with Amalia the more Portuguese I get. And then I use it with two other friends from Brazil. It simply works - with no formal training, courses, textbooks. In class you are focused on correctness, not on getting your message across, and you are graded for correctness. This creates stress, confusion, doubt in your abilities.

My Portuguese, however, would not be good enough to get a job in Portugal. And my English, by the way, which I use with ease, would most probably be not enough to work as a journalist or in a radio station, although I read and listen to English between 5 to 10 hours every day.

What the research about language learning teach us? Almost NOTHING! It only confirms common truths about what helps: immersion, having no stress, living in the country, being self-reflective about your methods, good resources, practice, reading, radio, tv, vocab drills etc.

I talked with prof. Anders Ericsson about why is it that 40 years of serious systematic research has not produced ANY conclusions. You might have heard about Stephen Krashen and his "silent period" and "natural acquisition method", in short: adults learn just like children. This method is very popular among polyglot YouTubers such as the popular Steve Kaufman[1]. The most important principle of this method is that you don't learn grammar at all. The research on second language acquisition is NOT CONCLUSIVE! I believe in science (the same science that builds transistors smaller than visible light waves) and apparently Krashen's theory has not been confirmed or rejected which means that we still have no clue what works and what doesn't. I've spent tens or maybe even hundreds of hours reading about Krashen and I am only frustrated. Language research is tricky, there are dragons, don't go there.

I spent over a year on scholarship studying Hebrew, I was very methodical about it, I made beautiful statistics, graphs, precisely measuring everything for 12 months and my conclusion is that: leaning a language is freakingly difficult, requires inhumane tons of hours, and that brute force works (Anki drills). I had excellent conditions, money for free, a room, teachers, no family, no concerns. I can now (slowly) read academic papers and watch movies, but I just cannot imagine anyone (not super smart) learning any language having a (intellectually demanding) day job and kids, and reaching fluency on a graduate level.

I am about to start leaning Arabic and I feel I will die trying (I'm 30). With just about 3-4 hours a week I expect to be able to read Judeo-Arabic in 15 years.

Resources (in fairly random order):

* Julia Herschensohn, Martha Young-Scholten (ed.), Second Language Acquisition (The Cambridge Handbook), Cambridge University Press, 2013.

* Carol Griffiths (ed.) Lessons from Good Language Learners, Cambridge University Press, 2008.

* Christine Pearson Casanave, Controversies in Second Language Writing, Dilemmas and Decisions in Research and Instruction, University of Michigan, 2004.

* John W. Schwieter (ed.) Innovative Research and Practices in Second Language Acquisition and Bilingualism, John Benjamins Publishing, 2013.

* Anders Ericsson, Robert Pool, Peak, secrets from the new science of Expertise, 2016. (interesting but not strictly scholarly)

* Stephen D. Krashen, Principles and Practice in Second Language Acquisition, University of Southern California, 1982.

[1] https://www.youtube.com/user/lingosteve

crispytx 13 hours ago 0 replies      
Java for Dummies ;)
bitL 11 hours ago 0 replies      
Sink or swim.
a_rahmanshah 21 hours ago 1 reply      
I know 5 languages. Hindi, Urdu, Telugu, English and Arabic. Fluent in 4/5.Most Indians know 3+ languages.
joe563323 13 hours ago 0 replies      
Born in a country ruled by british in the past century.
reddytowns 1 day ago 0 replies      
I'm still learning but my recommendation is a lot of repetition. I learn primarily by trying to read a book in the foreign language with a translation available.

Only I repeat and repeat each sentence, each paragraph, and then each page, until I can read it out loud quickly with good pronunciation (I have a reader with TTS in the foreign language), where I can construct the meaning in my head on the fly. Until I get to that point, I don't consider the sentence, paragraph, whatever, learned.

My theory of language learning is that you need a strong root of a few sentences before you can branch off into new words and grammar constructs.

Too many language courses try to pack in the material as fast as possible. To me, that's a mistake. Like etching a lot of faint scratches into stone, you have a lot of information there, but it's difficult to read any specific thing and they wear away quickly. So, basically go for a few deep marks over a bunch of small light ones.

jbchoo 23 hours ago 0 replies      
Singapore education system: bilingual mindset. How long? Since birth, 20 over years.
smegel 16 hours ago 0 replies      
You need to get a language partner. Rote learning is nothing if you can't recall when you need to.

Just being able to make repetitive small-talk - but being able to do so with a degree of confidence is the base for expanding your "working set" into more useful and fluent conversations.

Beyond that, I found Anki to be the best flash-card system. Customizable, it's great if you are motivated enough to design and build your own card decks. Getting a "basic" vocab of around 1000 words should be a rapid short-term goal over 3 months or so (that's 10 new words a day, more than that will be challenging for most people).

And find a good textbook. There are a lot of ordinary books out there. But there are also usually a couple of highly regarded/respected series for a given language that stand out above the rest. For the two language I have learned they are the Integrated Korean series, and Japanese for Busy People.

But...go back to the first point. Language partner. There is not point trying to study a language in a vacuum, you need to be recalling in realistic conversations scenarios everyday ideally.

shin_lao 18 hours ago 0 replies      
I'm fluent in several languages (> 3).

When I learned my first foreign language (as a kid, in the 80's), there were only paper dictionaries and books. Software is a great improvement over paper dictionaries, however Im unsure about apps. I tried a couple of applications and have been unconvinced.

That being said, the Internet makes it very easy to access content in the language you study and even find people with whom to speak. Youtube for example is full of videos on topics you like.

Lets ignore software and tools, as its really secondary (yes, really).

The first step is the why? If its just for the pleasure, that may not be enough. There must be a reason, otherwise you are likely to give up. For example: work, living in the country, strong interest in the culture, relatives, origins, etc.

The difficulty of learning a foreign language depends on the distance between your native tongue and the foreign language. Its very hard for an English speaker to learn Mandarin (and vice-versa), however French is a lower hanging fruit (you already share thousands of words of vocabulary).

Its also very dependent on you. Some people are just better than others at learning languages. Just accept it and go at your rhythm.

The best advice I can give is that you should find a native teacher. I cant stress the importance of learning with a native enough. Its paramount for pronunciation and idiomatic phrasing. I would almost say that you are wasting your time with a non-native teacher, however competent she may be.

Why a teacher and not self-teaching?

I would refrain from self-teaching, as this will give you horrible pronunciation and probably give you bad habits. There is a point where an accent ceases to be cute and makes listening to you uncomfortable, dont underestimate pronunciation. Remember: unlearning is one order of magnitude harder than learning.

In addition, learning a language is a serious commitment and without someone to give you homework every week (and checking that homework) you will very likely give up, even if you have excellent self-discipline.

Depending on your personality you can either have one to one sessions (for example with Skype) or work in group. I personally prefer one to one greatly.

Having a teacher and looking for that teacher will also test your resolve. :-) Every time someone mentions Im learning X, I ask, Why dont you take courses?. If the answer I dont have time, I know the person isnt serious about learning.

The temptation to give up will be at every corner as studying languages is very hard and the duration is measured in months, if not years. You will struggle, a lot. There are times where you will make no progress and seem unable to remember anything: thats normal.

Speaking a foreign language is one of the greatest things in life. It expands your horizons and will overall make you a better, more understanding, humbler, human being. The pleasure of conversing with foreigners in their native tongue will belittle all the efforts you endured.

Jugurtha 23 hours ago 0 replies      
I mostly use English. Never been to the U.S. and not in a country where it's spoken. I've never "studied" English except in school. I just wanted to learn about Neuro-Linguistic Programing and all the good stuff was in English. I have a few replies on Reddit about how I acquired languages. I'm on mobile right now and I'm not accustomed to it (xorg isn't talking to me). hjugurtha on reddit.

Check out Stephen Krashen, he basically describes how I and a lot of people have acquired languages.

Gist of it:

- A lot of reading about a lot of topics.

- Exposure to the language (audio video).

Ask HN: Do you log your time at work?
15 points by agateau  17 hours ago   20 comments top 14
EliRivers 5 hours ago 0 replies      
At the end of the week, I look back at the hours/tasks I have allocated to me and I fill them in. Generally, there's no link between how long something took me and how many hours I write in it; I just write all the hours in. If there were 8 hours set aside for it, I write 8 hours in the box. Sometimes I spread it over several days.

If I don't have enough tasks/hours allocated, I look back at anything I did during the week that isn't on the allocated list, and I have it added to the allocated list and then I write the hours in. Sometimes, I'll do this during the week rather than all on Friday.

The purpose is to fill in the boxes and make the numbers match. Nobody ever examines the boxes and numbers, and they bear no relationship to what actually happens. If I don't fill in the boxes and make the numbers match, someone comes to insist that I fill in the boxes and make the numbers match.

In the ones that I get added, I pick the number. Other ones just appear with numbers already in them. Sometimes I like to spread the numbers out. Sometimes I just do them in big blocks.

sprobertson 6 hours ago 0 replies      
I also use Toggl, paired with either Jira or Trello depending on the client. To solve the annoying data entry step I built a small tool. It lists tasks with a "play" button to start the clock. When done or done for now I can stop the clock, the tool saves the time spent and potentially updates the issue status (or moves the card)
bendixso 16 hours ago 1 reply      
I do. I try to focus on improving my estimates. I find that some things work better when lumped into a general category like "Code Review" while you can be more specific with other things, for example a particular feature or user story.

You have to ask yourself, what value would you get from estimating that a code review will take 10, 20 minutes? Is that kind of information particularly useful for forecasting? I would guess it isn't because it seems too granular. Nobody I know sits down and plans a series or 10 or 20 minute code review sessions. They usually plan out bigger blocks of work.

I use a tool called Track - Simple Time Tracking and Invoicing (https://itunes.apple.com/us/app/track-simple-time-tracking/i...)

Full disclosure, I built Track and I own the company that sells it.

I built Track because I wanted a cleanly designed time tracking tool that syncs my data between devices and doesn't make me sign up for an account. It's iOS-only. It works on the iPhone and iPad.

So yeah, I use the tool that I built. I use it every day while I'm working on my client projects.

altaweelali 12 hours ago 0 replies      
I tried many apps/ways and finally created my own. It is a local web app I put together inspired by Slack bots/commands. It is like CLI on a web interface with autocomplete and suggestions. I like it because I dont have to click many things to add, view, or delete tasks.

Example:(/Todo-New taks name here Project project name Due 1/1/2016 Tags #one #two #Three Time 2h)

Anyways, I do track time because we bill hourly and eventually I have to move the totals for billable work from my app into our timesheet system (very clunky Microsoft Project Server).

hugodahl 13 hours ago 0 replies      
I use RescueTime (https://www.rescuetime.com/ref/386085) (disclaimer: referral link but I am an active and paying user) which can track time based on open/active/focussed app, per-site productivity tracking based on your settings, open API, mobile and offline tracking, focussed mode (block all distracting sites), integrations and much more.

I've been a paying customer for over 5years, and well worth EVERY penny!

nigel182 9 hours ago 0 replies      
I use http://mydamntime.com of which I am the author. I track time there because it's easy to account for lots of task switching, then transcribe the summary to the company timesheet app at the end if the day.

Note: the mobile interface is very dated. I only use it in desktop.

itomato 10 hours ago 0 replies      
If I am on a project uses JIRA, there is a good chance I will be using Tempo. Otherwise, I provide a cumulative account on a daily basis with the facilities built into JIRA, or directly to the PM (sometimes me) to account for my time.

In my experience, the requirement for per-task time allocation is not met with the appropriate review and tally at the PMO level.

It is more pain than gain.

imranq 13 hours ago 0 replies      
I like this app: ATracker PRO - Daily Task and Time Tracking by WonderApps ABhttps://appsto.re/us/Ab-9E.i

You set up some tags and tap on them to start the timer. For example I track things like meeting times or time spent in code review. Also generates reports and gives you JSON to write custom apps with.

By the way, I don't have any affiliation with the app or company, I just think it's a well designed app

elsurudo 12 hours ago 0 replies      
Yes hourly for obvious reason, and fixed-price so I can improve my estimates.

I use Freshbooks for invoicing, and it also allows simple time tracking, for which I use a macOS dashboard widget (a bit outdated, but it works).

francisbond 8 hours ago 0 replies      
Utility to create jira tasks in toggl from issues and sync time entries from toggl to jira issues work log.


larose 10 hours ago 0 replies      
Yes, I use https://github.com/larose/utt

Disclosure: I'm the author.

welder 16 hours ago 1 reply      
I use https://wakatime.com for this. I use a Git branch for each feature/Jira ticket and at the end of the day WakaTime tells me how long I coded in each branch.
wcummings 12 hours ago 1 reply      
If you want to track it for yourself, go for it, but you should be pissed if your employer wants to collect that information.
andriesm 15 hours ago 0 replies      
toggl has very nice desktop,mobile and web apps, reporting, tagging, simple and easy to use, team mode etc. You get a lot out of the free version. Recommended
Ask HN: What's the best 'non-frustrating' search/directory UI/UX you've seen?
94 points by taphangum  1 day ago   48 comments top 24
isxek 1 day ago 5 replies      
If you means something that searches for files within any directory, I think the best so far I've used was Everything (https://www.voidtools.com/). Lightweight, fast, and really simple UI.

I'm still looking for a Linux equivalent (I'm currently using a shell wrapper for `ag --depth 0 -g <pattern> <directory>`.)

digitalengineer 1 day ago 1 reply      
If we're talking ux it's how people search as well. We've got LATCH for that. Location, alphabet, time, category and hierarchy. On the BBC website people might search for a 'detective' (category), but also might search for 'tomorrow, this week' (time) or 'most viewed' (hierarchy).
whitepoplar 1 day ago 0 replies      
Maybe it's not what you're looking for, but I've found McMaster-Carr's website to be highly functional in its UI/UX:


cogs 1 day ago 1 reply      
We built a SQL query tool for the filesystem (macOS) last year, and will be launching for Windows in the next two weeks.

Finding files is pretty straight forward using the LIKE operator against text in the filename, path or file contents. And the set-based logic of SQL works very well for identifying sets of files to work with: we have an exec() command that lets you run commands on file paths returned in query results.

License terms are free for personal use and $5/month commercial.


JoshTriplett 1 day ago 1 reply      
Newegg has one of the most powerful product search/filter mechanisms I've seen. It's not the best UX (could use more performance and a better multi-select mechanism, and dividing the interface into three levels of simple/advanced/power search doesn't seem ideal), but in terms of functionality, it almost always has the features I want pulled out and selectable. Search for a monitor, and you'll get options for resolution, inputs, size, etc.

In terms of raw performance, I'm impressed with the speed and presentation of https://instantdomainsearch.com/ . Instant live responsiveness improves usability significantly.

tehwalrus 1 day ago 0 replies      
The very old iTunes search bar. I still miss it.

Basically, because the list of songs was short-ish (in CS terms), it would fiter it based on the current search textbox what seemed like instantly.

I would have a large list and filter it down each time the user types another letter: and concentrate on making that as fast as possible.

0restes 1 day ago 0 replies      
I do consulting for UX for faceted search, and the top of my shortlist for ideas/inspiration is still http://devart.withgoogle.com/ But for a search engine, I'm interested in how UI that works much like this example would play out: https://material.uplabs.com/posts/google-search-design-conce...
carsongross 1 day ago 0 replies      
I tend to add live searches in the most important tabular views of my apps, using something like this:


Search speed, good fuzzy matching and good row/chip design are as important/more important than the basic search UI, IMO.

TickleSteve 1 day ago 0 replies      
Sublime text....

ctrl p, type fuzzy match, instant results.

Buetol 1 day ago 0 replies      
I've been collecting examples of search interfaces, maybe it can help you: https://sortandfilter.tumblr.com/
brudgers 1 day ago 0 replies      
A few examples of search UI?UX and an indication of their design shortcomings might provide context for answers and a starting point for discussion.
6DM 1 day ago 0 replies      
I don't know about a system for all file types, but I've always really liked how wallbase did image search. That went down but this is supposed to be the upcoming replacement: https://alpha.wallhaven.cc/
pquerna 1 day ago 0 replies      
I don't think its perfect, but I think Yelp's search UI does pretty well for a ton of choices, and integrates Geo-boxing in a way that most people can understand more easily than within 20 miles of a zip code



They keep the most common filters quickly available, make it easier to dive into more, and their search result entry contains the neighborhood so i can quickly figure out where something is, a photo, part of a review, phone number and address.

ivan_gammel 1 day ago 0 replies      
Pinterest is good as a directory of almost everything that has a picture. A lot of people in UX is using it to collect inspirational UI screenshots, diagrams etc, so it's possible that you can find something there.
perlgeek 1 day ago 0 replies      
I like Jira's JQL search functionality. (This is for rather structured data, which are issues in a project management system).

It offers autocomplete for logical operators, search operators, field names and even for values (where there is a limited amount of data available to select). And it offers enough power for nearly all queries I could think of so far.

(In contrast to SQL there are no subselects or explicit joins, but there are plugins that make subselects available).

BrunoJo 1 day ago 1 reply      
Have a look at https://www.pexels.com/. I think the UX is great to find photos.
NathanKP 1 day ago 0 replies      
I've also been working on a search engine website, and personally my approach for the search/directory UI has been to keep it as minimal as possible, like early Google.

Not sure how inspiring it is, but here you go: https://changelogs.md/

The goal of this UI is to have the bare minimum of useful info easily accessible.

gbog 1 day ago 0 replies      
Not sure if it counts as ui buy it is for me the only non frustrating way to search anything in my filesystem: grep and find in the terminal.
kodisha 1 day ago 0 replies      
Upvoted, can't wait to hear some great comments and examples, because I too find this to be one of the most frustrating areas in my daily routine.
singularity2001 1 day ago 1 reply      
google ... before it became frustrating to be under total surveillance.
rocky1138 1 day ago 1 reply      
collyw 17 hours ago 0 replies      
ChoHag 1 day ago 0 replies      
Ask HN: What's going on with socket.io slack channel?
5 points by cocktailpeanuts  7 hours ago   2 comments top 2
mtmail 6 hours ago 0 replies      
http://socket.io/slack/ reports 14208 registered users. Other open source projects got stopped at half that. Slack recommends 1000. http://www.businessinsider.com/slack-free-unlimited-plan-has...
rekoros 6 hours ago 0 replies      
channel != team
Ask HN: Good books or articles on UI design?
331 points by nahcub  2 days ago   84 comments top 51
overeater 2 days ago 3 replies      
Some of the reading list in the UI/UX course at Brown:


Particularly (free links with pdfs),

Don Norman - Design of Everyday Thingshttps://archive.org/details/DesignOfEverydayThings

Bill Buxton - Input Manuscripthttp://www.billbuxton.com/inputManuscript.html

Alan Cooper - About Facehttp://feiramoderna.net/download/pos-positivo/COOPER-Alan/Ab...

Vignelli - The Vignelli Canonhttp://www.vignelli.com/canon.pdf

Bill Buxton - Sketching User Experienceshttp://bscw.wineme.fb5.uni-siegen.de/pub/bscw.cgi/d807887/Sk...

(the workshop slides)https://www.medien.ifi.lmu.de/lehre/ss14/id/Day%202%20Sketch...

jordanlev 2 days ago 2 replies      
Joel Spolsky's "User Interface Design for Programmers" is concise, educational, entertaining... and free (even an easy-to-read all-in-one HTML page):


Also highly recommend Steve Krug's "Don't Make Me Think" (as others have already commented): http://www.sensible.com/dmmt.html

YZF 2 days ago 1 reply      
"The Design of Everyday Things" is a classic.
ivan_gammel 1 day ago 1 reply      
There are many books talking about UX/UI design, but most of them are quite abstract and do not tell you, when exactly, on which stage of your software development process to apply the knowledge they present. This often leads to a typical mistake done by developers, that I've seen in too many projects, when UI design is considered at later stages of the project, when they are starting coding the UI and all the backend is already done. Because of that, the process is equally important and needs some of your attention.

To achieve really good results in UX design, to do it at the right time, I'd recommend to start not from the books, but from the interaction design specialization on Coursera at https://en.coursera.org/specializations/interaction-design or you can take just intro - https://en.coursera.org/learn/human-computer-interaction. You can take the courses for free and they'll give you the necessary mindset and understanding of process. You'll find that product design actually starts from UX, not ends with it and it defines the necessary requirements framework for the system architecture, which you can use later in combination with BDD/DDD. After that course you can start reading the books (Steve Krug, Don Norman, Alan Cooper, indeed!) and platform guidelines (my favorites are for Google Material Design and Microsoft's Modern UI).

It will be great if someone here recommends some books or articles about UX design process and integration of it into popular agile methodologies.

RossBencina 1 day ago 1 reply      
Nielsen Norman Group has a blog archive[0] spanning over 20 years, with posts from Jakob Nielsen, Don Norman and Bruce "Tog" Tognazzini, among others. For example:

"10 Usability Heuristics for User Interface Design" by Jakob Nielsen, January 1, 1995 [1]

[0] https://www.nngroup.com/articles/

[1] https://www.nngroup.com/articles/ten-usability-heuristics/

erispoe 2 days ago 0 replies      
"Build Better Products" [1] by Laura Klein, will be available on Nov 1st. Laura Klein was recently a guest on the Lean Startup Podcast [2]. She brings an experimental, iterative, approach to design.

[1] http://rosenfeldmedia.com/books/build-better-products/[2] https://soundcloud.com/lean-startup/4-season-3-combining-use...

meritt 2 days ago 2 replies      
Don't Make Me Think - Steve Krug

Information Dashboard Design - Stephen Few

pythonbull 15 hours ago 0 replies      
Some great books- immerse in it for rapid learning

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) - http://amzn.to/2e5Erfc

Design for Hackers: Reverse Engineering Beauty - http://amzn.to/2euMOUc

UX Design and Usability Mentor Book : With Best Practice Business Analysis and User Interface Design Tips and Techniques - http://amzn.to/2dXYZJT

dangom 2 days ago 0 replies      
Since there are already a lot of books here..I'd say reading some of the top voted questions on Stack Exchange's "User Experience" gives an idea of things UI designers consider relevant.


This question may be particularly relevant:


franze 2 days ago 0 replies      
"Understanding Comics" by Scott McCloud! Simply the single most important book to understand sequentional word/picture combinations. And yes, it's a comic!


Animats 1 day ago 0 replies      
The original Macintosh User Interface Guidelines are still worth a read. Some of them have been forgotten. A good one is "You should never have to tell the computer something it already knows".
dirtyaura 1 day ago 1 reply      
Alan Cooper's About Face. It's quite old - the latest ed is from 2007 - but it is still very good at introducing goal-oriented design and lots of practical design concepts.
DenisM 2 days ago 1 reply      
Here's a different perspective: the best UI is where you can get rid of most or all interaction.


Normal_gaussian 2 days ago 3 replies      
The Visual Display of Quantitative Information - Edward Tufte

All UI's are graphs at their heart

vickychijwani 12 hours ago 0 replies      
"Designing with the Mind in Mind" (https://www.goodreads.com/book/show/8564020-designing-with-t...) is an excellent book that approaches design from a fundamental psychology perspective.
charlieirish 1 day ago 2 replies      
I keep re-reading The UI Audit by Jane Portman:


I use it every time I need to craft an interface but especially for SaaS apps. The OP requested something from a 'newbie perspective'; this book will explain the basics but the real value comes from the explanations and advice with respect to why UI decisions lead to happier users.

I've copy/pasted the chapter headings from the site:


Chapter 1. Your Product Strategy

Chapter 2. Navigation

Chapter 3. Dashboard & Homescreen

Chapter 4. Audit Your Screens

Chapter 5. The Problem of Style

Chapter 6. Get a Theme

Chapter 7. Plan for Improvements

Chapter 8. Deal With New Features

krosaen 1 day ago 0 replies      
I think it really depends on what you want to do.

1) Want to make user interfaces that are actually useful to people? Read up on product management, UX and interaction design. Important skills: articulating the problem you are solving and for what kind of user, and being able to validate whether your hypothesis is on point. Iterating before committing further resources to building a prototype. Conducting user testing sessions (rocket surgery made easy is a good resource for this).

2) Want to make a specific view / flow of a product inviting and visually appealing? Study visual design and typography.

3) Want to be able to build a functional prototype that looks reasonably good? Study frontend design / development. There are a lot of frameworks that could get you up and running.

IMHO going for (1) and (3) first is smart; if you can't prototype and evaluate a user experience that has a shot in hell of being useful to an actual user, being able to make stuff look pretty is kind of irrelevant (unless you are specializing and collaborating with engineers and UX people). In any of the above cases, at least knowing more precisely what you want to learn will help you do better googling, e.g "best books on visual design" or "best books on interaction design".

anexprogrammer 2 days ago 0 replies      
http://alistapart.com/ A mix of web topics, and has covered UI/UX from the earliest days.
joatmon-snoo 2 days ago 1 reply      
How has Bruce Tognazzini's stuff not been mentioned yet? Tog on Software and Tog on Interface are great.


jordwest 2 days ago 1 reply      
GoodUI has a handy list of tested design patterns and recommendations:


maciekk 2 days ago 0 replies      
I had reading list by Kevin Hale in my notes. I think he doesn't mind if I share:https://www.amazon.com/gp/richpub/listmania/fullview/R18EQHH...
Nekorosu 2 days ago 0 replies      
This one is good at teaching both fundamental design principles and UI design in particularDesigning Visual Interfaces: Communication Oriented Techniques

This is an introduction to UX The User Experience Team of One

It's from Rosenfeld Media and you should take a look at the rest of their books. They are of a high quality and cover a wide range of topics related to both UI design and UX.

neosat 2 days ago 0 replies      
If you can read only one book read About Face 2.0You can find a somewhat better about most of the topics mentioned there that go into more depth into individual topics (except maybe the core of interaction design) but About Face 2.0 will give you a solid foundation into design applied to interfaces.
MarkMc 1 day ago 0 replies      
Not a book, but if you want to improve your UI just watch as a novice user tries to use your software. You will learn in 10 minutes things it would take a book 10 hours to explain.
wlesieutre 2 days ago 0 replies      
Universal Principles of Design - William Lidwell

It's not explicitly computer UI design, but the book is essentially an alphabetical list of design concepts with illustrations/examples, and they're very applicable to computers. Amazon has "look inside" if you want to see what it's about.

codr4life 2 days ago 0 replies      
Second Tufte, read all of them several times and they've influenced everything since. Raskin's "The Humane Interface: New Directions for Designing Interactive Systems" is another good one, puts a lot of solid research into context.
ivm 2 days ago 0 replies      
I follow http://sidebar.io/ for a couple of years, it's a nice place to get the latest articles about UI, UX, fonts, etc.
iQuercus 2 days ago 0 replies      
Shameless plug, since I recently wrote it: https://medium.com/the-craftsman/the-whoa-how-did-you-do-tha...

Basically, don't forget the human in human computer interaction/UI/UX. It's very easy to come out of the academic perspective on UI/UX design designing exclusively to efficiency formulas and words in a glossary. Keep the user, the human, and their context in mind.

frio 2 days ago 0 replies      
I found Design for Hackers helped make my work less vomit inducing, but I'd suggest that it's really mindfulness of what you're building (rather than just flinging interface at a screen) that'll get you over the first hump, and almost any book will suffice.


Leftium 2 days ago 0 replies      
Excellent intro (free): The Fable of the User-Centered Designer [1]

His Udemy course is also very good: User Experience (UX): The Ultimate Guide to Usability and UX [2]

[1]: http://www.userfocus.co.uk/fable/

[2]: https://www.udemy.com/ultimate-guide-to-ux/

mindcrash 1 day ago 0 replies      
"Design for Hackers" from David Kadavy is a really great introduction to design for programmers.


harryf 2 days ago 0 replies      
Design for Hackers is a pretty good book - https://www.amazon.com/Design-Hackers-Reverse-Engineering-Be...

Meanwhile https://www.designernews.co is Hackernews for designers

danenania 1 day ago 0 replies      
Check out Nathan Barry's book Designing Web Applications: http://nathanbarry.com/webapps/

It's accessible, not too long, and yet still packed with good info on the basics of ui design and user experience.

0xCMP 2 days ago 0 replies      
This is always a great resource: https://hackdesign.org/

* edit: meant this one

ryanSrich 2 days ago 0 replies      
Here's a list of all design books that I give to new hires:

Branded Interactions: Creating the Digital Experience - (https://www.amazon.com/Branded-Interactions-Creating-Digital...)

The Visual Display of Quantitative Information - https://www.amazon.com/Visual-Display-Quantitative-Informati...

Universal Principles of Design - https://www.amazon.com/Universal-Principles-Design-Revised-U...

The Interface: IBM and the Transformation of Corporate Design, 1945-1976 - https://www.amazon.com/Interface-Transformation-Corporate-19...

Multiple Signatures: On Designers, Authors, Readers and Users - https://www.amazon.com/Multiple-Signatures-Designers-Authors...

Change by Design: How Design Thinking Transforms Organizations and Inspires Innovation - https://www.amazon.com/Change-Design-Transforms-Organization...

Thoughts on Design - https://www.amazon.com/Thoughts-Design-Paul-Rand/dp/08118754...

Notes on the Synthesis of Form - https://www.amazon.com/Notes-Synthesis-Form-Harvard-Paperbac...

..and a list of ones I'm considering adding:

Unflattening - https://www.amazon.com/gp/product/0674744438/ref=oh_aui_deta...

Creative Confidence: Unleashing the Creative Potential Within Us All - https://www.amazon.com/gp/product/038534936X/ref=oh_aui_deta...

The Design Method - https://www.amazon.com/gp/product/0321928849/ref=oh_aui_deta...

Product Design for the Web: Principles of Designing and Releasing Web Products- https://www.amazon.com/gp/product/0321929039/ref=oh_aui_deta...

eDISCO 2 days ago 0 replies      
"The non-designer's design book : design and typographic principles for the visual novice" - very easy to follow.
kevindeasis 2 days ago 0 replies      
Shameless self post about a repo I've made about UI resources


I'll be adding more content in the last week of October and fixing the repo so it'll be easier to navigate

vyuh 1 day ago 0 replies      
Have a look at http://52weeksofux.com/tagged/week-1. I have not read all articles of this blog but the first few give meaningful UX insight.
ritchiea 2 days ago 0 replies      
My favorites are the classic "The Design of Everyday Things" and "Microinteractions" (http://microinteractions.com/about-the-book/).
divmain 2 days ago 0 replies      
I found Seductive Interaction Design to be both enjoyable and highly instructive!https://www.amazon.com/gp/product/0321725522/
sixdimensional 2 days ago 1 reply      
It's a little dated (is it sad that 2006 is "dated"?), but I still find "Designing Interfaces" by Jenifer Tidwell (it's an O'Reilly book) helpful once in a while for basic UI/interaction thoughts.
ghexfox 2 days ago 0 replies      
the stackoverflow equivalent for ui/ux provide some common tips and can help avoid a lot of pitfall.


my favorite: http://ux.stackexchange.com/questions/9946/should-i-use-yes-...

__m 1 day ago 0 replies      
A meta book about the process "Thoughtful interaction design" Lwgren, Stolterman
adamrezich 2 days ago 0 replies      
Cadence & Slang (https://cadence.cc/) is absolutely fantastic
jakub_g 2 days ago 0 replies      
I have yet to read it, but I've seen good opinions on 'About face' in some threads on the topic


akie 1 day ago 0 replies      
I still really like and would strongly recommend Steve Krug's "Don't make me think" (https://www.amazon.com/dp/0321344758)
combatentropy 2 days ago 0 replies      
happycodework 2 days ago 0 replies      
"Practical typography" is great
stemuk 2 days ago 0 replies      
Slightly OT, but 'Sprint' written by Jake Knapp is a pretty cool book on working on all kinds of projects, UI/UX projects included.
thejerz 1 day ago 0 replies      
"Save The Pixel" by Ben Hunt is a hidden gem.

It's an ebook, but don't let that fool you.

Grishnakh 2 days ago 0 replies      
Don't use anything less than 5 years old, because it'll try to get you to make PC software look like it belongs on a smartphone.
Ask HN: What is your favorite YouTube channel for developers?
1046 points by justanton  3 days ago   161 comments top 83
Cyph0n 3 days ago 3 replies      
I'm going to use this opportunity to list some relatively unknown yet excellent software dev related channels that I've come across over the years.

* Derek Banas (https://www.youtube.com/user/derekbanas): staggering amount of content on a huge variety of programming topics; tutorial-style; this guy is so productive it scares me sometimes :(

* Mark Lewis (https://www.youtube.com/user/DrMarkCLewis): CS professor; lots of videos on general CS, functional programming; focus on Scala

* VoidRealms (https://www.youtube.com/channel/UCYP0nk48grsMwO3iL8YaAKA): excellent C++-focused content, great Qt series

* mathematicalmonk (https://www.youtube.com/user/mathematicalmonk): great ML and probability videos

* mycodeschool (https://www.youtube.com/user/mycodeschool): general CS, algorithms, data structures

* HandmadeHero (https://www.youtube.com/user/handmadeheroarchive): excellent series by Casey Muratori that explains a huge number of topics related to game dev, gfx programming; has a really long series of videos documenting how he's building an indie game from the ground up i.e. custom engine

I will update once I think of others :)

petercooper 3 days ago 6 replies      
https://www.youtube.com/bisqwit is by far my favorite and I've spent many hours watching him.

He does things like create a Doom-style engine from scratch: https://www.youtube.com/watch?v=HQYsFshbkYw .. create a NES emulator: https://www.youtube.com/watch?v=y71lli8MS8s .. work back from a C++17 example to show why new C++ standards are needed: https://www.youtube.com/watch?v=wrwwa68JXNk .. and even building a Tetris clone in GW-BASIC: https://www.youtube.com/watch?v=JDnypVoQcPw .. Right now, he's doing a series on cracking 80s videogame passwords: https://www.youtube.com/playlist?list=PLzLzYGEbdY5nEFQsxzFan...

Sirajology - https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A - is another interesting one. He moves a bit too quickly for me, but does things like explain machine learning in 5 minutes or how to generate music with systems like Tensorflow.

makenova 3 days ago 3 replies      
These are not in any particular order and I do not watch every single video on their feeds, just the ones that are relevant or seem interesting.

ChromeDevelopers: https://www.youtube.com/user/ChromeDevelopers

LevelUpTuts: https://www.youtube.com/user/LevelUpTuts

Strange Loop: https://www.youtube.com/channel/UC_QIfHvN9auy2CoOdSfMWDw

Computerphile: https://www.youtube.com/channel/UC9-y-6csu5WGm29I7JiwpnA

funfunfunction: https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q

Wes Bos: https://www.youtube.com/channel/UCoebwHSTvwalADTJhps0emA

jplahn 3 days ago 1 reply      
I'm a bit of a David Beazley fanboy and Python lover. I've watched all of his keynotes and lectures at this point and I have yet to find one that wasn't incredibly informative. You can watch the video for whatever the main topic is about, but finish the talk having picked up a wealth of other bits of useful information.

In addition, I have incredible amounts of respect for people that are willing (and capable) to live code what they're teaching. For one of the best examples of how to effectively live code, look no further than when he implemented a concurrent system from scratch at PyCon 2015: https://www.youtube.com/watch?v=MCs5OvhV9S4

Channel (with some of his videos): https://www.youtube.com/user/dabeazllc

GrumpyCoder 3 days ago 0 replies      
As a newbie gamedev. found these channels helpful.

Coding Math (https://www.youtube.com/user/codingmath): covers all the math you need for games and each ep. have code examples.

Bisqwit (https://www.youtube.com/user/Bisqwit): c++, emulators and other cool stuff even his setup is interesting(dosbox+his own editor).

ThinMatrix (https://www.youtube.com/user/ThinMatrix): his videos on VAO and VBO were a savior for me when learning opengl.

Daniel Shiffman (https://www.youtube.com/user/shiffman/): his videos are quite beginner friendly explains whole process of creating classic games like snake or creating art with code like fractal trees.

Vittorio Romeo: (https://www.youtube.com/user/SuperVictorius): walks you thru all modern c++ features by creating a game with them.

TimSchumann 3 days ago 1 reply      
Can't believe this hasn't been mentioned yet, so I'm gonna throw it out there. Gary Bernhardt of Destroy All Software.

Access to the videos costs $29/month but is well worth it IMO. He covers a very wide range of topics from beginner to advanced. To sum things up in a few words -- his content is focused on a general understanding of computer science and puts concepts, abstractions, and methodologies before any specific program, tool, or programming language.


Look at the episode titles for a better idea of what I'm getting at, there's literally something for everyone.

He's also started streaming on twitch occasionally.


eriknstr 3 days ago 1 reply      
I have enjoyed watching video recordings of talks from various conferences. Here are some of them off the top of my head.

Defcon (computer security) - https://www.youtube.com/user/DEFCONConference/playlists

PyCon 2016 (Python) - https://www.youtube.com/channel/UCwTD5zJbsQGJN75MwbykYNw/vid...

PyCon 2015 (Python) - https://www.youtube.com/channel/UCgxzjK6GuOHVKR_08TT4hJQ/vid...

PyCon 2014 (Python) - https://www.youtube.com/user/PyCon2014/videos

BSDCan (FreeBSD, OpenBSD and others) - couldn't find a dedicated channel but this one has some BSDCan playlists - https://www.youtube.com/user/osbootcamp/playlists

Chaos Communication Congress (computer security, organized by the Chaos Computer Club aka. CCC) - https://www.youtube.com/user/CCCen/playlists

Black Hat (computer security) - https://www.youtube.com/user/BlackHatOfficialYT/playlists

DerbyCon (computer security) - again, couldn't find a dedicated channel but this one has DerbyCon in addition to some others which might be interesting as well - https://www.youtube.com/user/irongeek/playlists

modeless 3 days ago 1 reply      


Coding a game engine from scratch, but don't think it's just about games. The techniques covered range from beginner to highly advanced and programmers in any field, at any skill level, can learn a lot. For example, check out the live editing/reloading for C code in Week 5. https://hero.handmade.network/episodes

awa 3 days ago 0 replies      
GoTo Conferences: https://www.youtube.com/user/GotoConferences

Mycodeschool: https://www.youtube.com/user/mycodeschool - Great for a refresher esp. if you are starting with interview style questions

Google Developers: https://www.youtube.com/user/GoogleDevelopers

Oreilly - https://www.youtube.com/user/OreillyMedia/videos -> Need to look at playlists to find really relevant ones. But good videos on AI, microservices and software architecture

felixangell1024 3 days ago 0 replies      
I've been enjoying Jon Blow's (creator of Braid & The Witness) programming language talks and demos. He's making a new programming language for games, and it's very interesting to watch. I think he's even hired a developer to work on the compiler.

Here's the playlist:https://www.youtube.com/playlist?list=PLmV5I2fxaiCKfxMBrNsU1...

spike021 3 days ago 1 reply      
Not so much programming techniques or best-practices, but I've really enjoyed watching Computer Science and Math-related lectures on MIT Opencourseware's channel. I highly recommend that one.

If you're trying to re-learn math (and probably going the Khan Academy route) then I highly recommend checking out PatrickJMT's channel. He produces simple, but excellent mathematical videos in a style similar to tutoring (which is how he started doing the videos in the first place). I actually find his style to be much more engaging than Khan (nothing against Khan of course).

_neil 3 days ago 2 replies      
Fun Fun Function is often entertaining. https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q
rajeshp1986 3 days ago 0 replies      
I was preparing for interviews and came across Tushar Roy's channel:


I really like the way he provides most simplistic explanations to the algorithm problems. Really helpful if you are preparing for an interview.

If you like physics and want some really good explanations to simple questions, you can check Derek Mueller's channel(Veritasium) on youtube. He is a physicist and has some really good videos. I especially like his video on " Most radioactive places on earth" and a separate video on Chernobyl. Also, check his video on Uranium : Twisting the dragon's tail : https://www.youtube.com/watch?v=cO57Zm-WNmg

MadWombat 3 days ago 3 replies      
I do not, in fact, have a favorite YT channel for developers. I hate with a fiery passion the recent fad of making everything that is supposed to be text, maybe text with a few pictures into a video. You cannot search a video. You cannot skim a video. You cannot copy and paste code sample from a video. You cannot watch it offline as easily as you can read a page.
lfowles 3 days ago 0 replies      
This is C++ specific:

CPPCon https://www.youtube.com/user/CppCon

eskimobloood 3 days ago 0 replies      
Bartosz Milewski on Haskell and Category Theory : https://www.youtube.com/channel/UC8BtBl8PNgd3vWKtm2yJ7aA
motivic 3 days ago 0 replies      
Bo Qian's C++ videos are worth watching: https://www.youtube.com/user/BoQianTheProgrammer
brakmic 3 days ago 1 reply      
kanzure 3 days ago 1 reply      
ythl 3 days ago 2 replies      
For Unity apps I like "Makin' Stuff Look Good": https://www.youtube.com/channel/UCEklP9iLcpExB8vp_fWQseg
tchadwick 3 days ago 1 reply      
yexponential 3 days ago 3 replies      
Youtube.com/thenewboston something very soothing about his videos and humor
godelski 2 days ago 0 replies      
I thought I'd add to the list for non-programming stuff.

- Ben Krasnow of Applied Science: Great for any maker, he currently works for Google X. https://www.youtube.com/channel/UCivA7_KLKWo43tFcCkFvydw (blog http://benkrasnow.blogspot.com/)

- Dan Gelbart: If you want to learn any prototyping https://www.youtube.com/user/dgelbart/videos

- EEVblog: All things electronic https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ

sooheon 2 days ago 0 replies      
Brian Will (https://www.youtube.com/user/briantwill/videos). I came into his channel from looking at his Clojure videos, but he has many other videos on other languages, basic (but easily misunderstood) programming concepts, and opinionated and educational videos on general programming paradigms.
fatherzeus 2 days ago 1 reply      
Because I know some of us are lazy I compiled most of them in one youtube section: https://www.youtube.com/channel/UC4MHkuCGUxMY6Q_yjPuzSgA/cha...

To the list I added three for those interested in iOS:

* https://www.youtube.com/user/CodeWithChris/playlists

* https://www.youtube.com/user/Archetapp/playlists

* https://www.youtube.com/user/veasoftware/playlists

taivare 3 days ago 0 replies      
This guy cracks me up ! Daniel Shiffman https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw Great way to get kids interested in programming . ps. He teaches p5.js really well !
pbhowmic 3 days ago 0 replies      
It depends on what I am trying to improve on. Currently it is the CMU Database Group https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA because I have never taken any DB courses in school and I felt the need to shore up my skills there.
pknerd 2 days ago 0 replies      
When it comes to learning ML in Python, Django and other topics, no one can beat Sentdex https://www.youtube.com/channel/UCfzlCWGWYyIQ0aLC5w48gBQ
agumonkey 3 days ago 0 replies      
I don't think they have dedicated pages, but searching for the classics Dan Friedman and Gerald Sussman is guaranteed brain tease. The minikanren relational interpreter is still high in my top videos ever, and Sussman watch engineering talk was packed with surprises.
DYZT 3 days ago 1 reply      
BriefTube.com is a TLDR; for Youtube educational videos. Instantly get the gist of what is being said and when.

*I'm the proud developer of BriefTube

code_chimp 3 days ago 0 replies      
I enjoy the discussions on the Entreprogrammers channel: https://www.youtube.com/user/entreprogrammers
burnt1ce 2 days ago 0 replies      
It's not free but Clean Coders by Bob Martin (Uncle Bob).https://cleancoders.com/videos

You can watch some his videos for free by signing a free trial account at https://www.safaribooksonline.com/. No credit card required.

Raphmedia 3 days ago 0 replies      
MIT channel is awesome. Learnt a lot. Take a look at this course: https://www.youtube.com/watch?v=k6U-i4gXkLM
zelon88 3 days ago 1 reply      
Can I nominate myself? I know I'm not very good or very diverse but if you want thousands of lines of vanilla Cowboy PHP I'm your man. https://www.youtube.com/watch?v=nb93xii7Eis&list=PLVbKN4o8V_...
mdadm 2 days ago 0 replies      
Super-late to this, but I always find https://www.youtube.com/channel/UCdX4uJUwSFwiY3XBvu-F_-Q to be interesting. Not sure if this is exactly relevant to the question, but I feel like I learn from it anyway.
EJTH 2 days ago 0 replies      
CNLohr never fails to amaze me with his ESP8266 hacks or his OpenGL voxel/raycasting experiments.


Not really related to best practices though, but he has done some nice things with the ESP8266.

cerved 3 days ago 0 replies      
There are some really nice JS talks by Douglas Crockford on the now defunct YUI library YouTube page:https://www.youtube.com/channel/UCTHcgWOTU6gPje1g_U29tfQEven though they are a few years old, they're still relevant
TimBoland 3 days ago 0 replies      
Simple Programmer (https://www.youtube.com/user/jsonmez): Awesome... A Developers Life Coach. Im a huge fan, I watch every single video and he has helped me in more ways than I can count.

My other favorites have already been mentioned

Polyvalent 3 days ago 0 replies      
Haven't seen this one posted here yet, but The Art of the Problem is insanely good. (https://www.youtube.com/user/ArtOfTheProblem)

Great focus on the fundamental questions of Computer Science.

kolpav 3 days ago 0 replies      

Jamie King

His series on C# is best I have seen. He also covers other topics and is very good teacher, lot of examples and is not afraid to go low level to explain things.

leke 3 days ago 0 replies      
For web developers (especially PHP devs)...phpAcademy, now CodeCouse https://www.youtube.com/user/phpacademy

I haven't really found a good one for JS yet.

thirdsun 2 days ago 0 replies      
Nobody mentioned Confreaks yet? I'm surprised. https://www.youtube.com/user/Confreaks

Confreaks records, broadcasts and covers conferences, talks and presentation relevant to all kinds of developers. Neatly organized in a playlist per event and uploaded reasonably quick I consider their coverage as extremely valuable for someone like me who isn't able or willing to attend all those great conferences and talks that are still very much relevant to me.

swah 2 days ago 1 reply      
Can we go meta? Youtube is doing a lazy job at making me watch more Youtube.

I receive notifications for certain channels while I'm at work - later at home, I have no idea how to watch "most interesting stuff from the last days" in a easy way. Then I go open channels manually! Come on!

They can easily improve and win the TV and Netflix on the living room... all the creative content is there. Show me some sort of auto generated playlist with the new content from channels I'm subscribed and that are trending.

bart3r 3 days ago 0 replies      
Mackenzie Child is goodhttps://www.youtube.com/user/mackenziechild

He does dev & design, specialising in Ruby on Rails

bloodragoon 2 days ago 0 replies      
I have these in my subscription list:

LearnCode.academy: https://www.youtube.com/user/learncodeacademy (Web development)

thoughtbot: https://www.youtube.com/user/ThoughtbotVideo (I watch them for Vim and emacs videos)

and funfunfunction: someone already mentioned it

chadscira 2 days ago 0 replies      

Lots of great tutorials, and cool guy.

tduraipkt 2 days ago 0 replies      
Can someone suggest channels/resources to understand all programming paradigms / general design patterns / algorithms / data structures ?


marknadal 3 days ago 0 replies      
The team over here is making explainer videos for beginner programmers on things like web application data security, cryptography, and data concurrency.

Here is our security/cryptography series: https://www.youtube.com/watch?v=C9Me04oEopk

Here is the channel: https://www.youtube.com/channel/UCQAtpf-zi9Pp4__2nToOM8g

iraldir 2 days ago 0 replies      
Google Chrome Developers (https://www.youtube.com/channel/UCnUYZLuoy1rq1aVMwx4aTzw), lots of good shows about JavaScript goodness, including some very state of the art stuff (HTTP2 for instance). A few good shows including a live one.
vishaltelangre 1 day ago 0 replies      
Daniel Shiffman (Coding Rainbow) - https://www.youtube.com/user/shiffman

He is a very funny and a great teacher!

rekshaw 2 days ago 1 reply      
famous gaming youtuber Quill18 also has a side channel called quill18creates, in which he creates various types of games from scratch. His content is pretty cool! I listen to him at 1.5x speed. His channel is really good if you want to get into game development, especially with the Unity engine.
fnord123 3 days ago 0 replies      
Jens Dittrich : https://www.youtube.com/channel/UCC9zrtAkl6yY4dpcnWrCHjA - but he seems to have stopped. :( There's loads of great stuff about implementing data retrieval systems.
pythonbull 2 days ago 0 replies      
de4sher 3 days ago 0 replies      
I do Python mostly. For Python there are conferences called PyCon. Type that into youtube search, and you'll find many channels. These are usually grouped per year and/or location. Watch videos there. The videos are not really for beginners, but for intermediate/advanced skill levels.
pynerds 2 days ago 0 replies      
venkateshkumar 2 days ago 0 replies      
For Java technologies like Spring, Jax-RS & etc.,https://www.youtube.com/user/koushks
interdrift 3 days ago 1 reply      
Anyone has any good source for dynamic programming ones? I'm really strugling with that topic.
fanaticgeek 2 days ago 0 replies      
I started a Youtube channel for amateurs ( covers Linux, basics of Web Development ): http://youtube.com/beingskilled
yankoff 3 days ago 0 replies      
Sirajology https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A

Covers machine learning related topics in a very fun way.

yugoja 2 days ago 0 replies      
* LearnCode.academy- https://www.youtube.com/user/learncodeacademy

Has good stuff mainly about JavaScript.

venkateshkumar 2 days ago 0 replies      
I like the Java Brains for Java technologies.


vladsanchez 3 days ago 0 replies      
Must watch John Lindquist's Pattern Craft : https://www.youtube.com/playlist?list=PL8B19C3040F6381A2
samirm 3 days ago 0 replies      
BinaryIdiot 2 days ago 0 replies      
Mine! Just kidding but I have been thinking of starting one so coming at this from another direction: does anyone have good resources regarding creating a YouTube channel?
watmough 3 days ago 0 replies      
C++ Weekly (https://www.youtube.com/watch?v=B3WWsKFePiM)Jason Turner

Just discovered it and watching right now.

davzie 3 days ago 0 replies      
Shameful self plug: http://youtube.com/c/theskaterdev

Mainly about PHP, Laravel and some soft topics.

BtM909 3 days ago 1 reply      
Although more for beginners: https://www.youtube.com/user/CodeBabes
patrickk 2 days ago 0 replies      
Coding for Entrepreneurs: https://www.youtube.com/channel/UCWEHue8kksIaktO8KTTN_zg

Depending on your level, it might be quite basic, but the titles of the videos are simply superb, and each video deals with a concrete topic so it's easy to follow along.

Not Youtube, but /r/watchpeoplecode has some great videos, often from Twitch: https://www.reddit.com/r/WatchPeopleCode/

Next Day Video has some great talks: https://www.youtube.com/user/NextDayVideo/videos

Not coding, VPRO from the Netherlands (English language) has some great "hacker" interest documentaries, e.g. the future of renewable energy, growing vegetables under LEDs or high frequency traders: https://www.youtube.com/user/VPROinternational/videos

Hardware hacking (admittedly I haven't watched it much): https://www.youtube.com/channel/UCfo1-oOnGqp1UgygGqlZL4A/vid...

CGP Grey: https://www.youtube.com/user/CGPGrey/videos Great

For coding/concerntration music, this music has some really nice electronic music: https://www.youtube.com/channel/UCqaay_q0YERQBEg4o5EjvZw (warning the "cover" images are quite porn-y and NSFW, but the music is good)

EDIT: Mighty car mods is a hilarious pair of lads from Australia, they do funny and informative car mods to some sweet Japanese cars: https://www.youtube.com/user/mightycarmods/videos

Jeorg Sprave is a German guy who makes truly insane catapults, slingshots, bows, cannons, modified Nerf guns, etc and demonstrates their use: https://www.youtube.com/user/JoergSprave/videos

chubs 3 days ago 4 replies      
Related: Can anyone recommend any golang ones?
brak1 3 days ago 0 replies      
Not youtube, but laracasts.com for php stuff
sanketbajoria 1 day ago 0 replies      
Awesome list.. it will help me a lot. Thanks a lot
StapleHorse 2 days ago 0 replies      
It would be usefull if HN have an "add post to favorites". If not, I'm forced to comment to save the link. :)

BTW, I learnt some Android programming with a 2012 playlist in youtube (Android bootcamp). I guess is dated now.

pknerd 2 days ago 0 replies      
Will anyone recommend some Youtube channels for:

- C++ learning from scratch


- Architecture and Design?


princeb 2 days ago 1 reply      

my bias showing here.

3 days ago 3 days ago 1 reply      
Ask HN: Rest api authorization
27 points by vskr  1 day ago   16 comments top 12
RandomOpinion 1 day ago 0 replies      
I've seen people use JWT (https://jwt.io/introduction/) for REST API auth. There are a variety of libraries that implement it and it's fairly simple to use.

Since it's just another HTTP header field, cURL can include it easily enough. Granted, you'll have to generate the encoded token externally but you would have had to do that with any other auth mechanism anyway.

jaypaulynice 1 day ago 1 reply      
OAuth2 is the way to go for REST services especially if you plan to let users give other apps/developers access without giving out their passwords. For better security, you want to decouple the authentication server from your web application (2 separate databases at least)

The authentication server stores email/username, encrypted password, and roles. To access the web app, you first get a token from the authentication server by exchanging a client_id, secret, username, password and grant type. The token is used whenever you want to make a request to the web app. The authentication server has an endpoint that lets the web app check to see if the token is valid and what roles the client has.

The token is only valid for a short time and can be revoked. To know who is making the request, you associate the username/email from the authentication server with a user object on the web application so you can look up based on username/email.

It's not worth doing this from scratch as there are plenty of open source implementations out there already like Spring Security Oauth2 and other libraries for Django/python, but they all require some reading to get started.

I've used Spring Security Oauth2, but it's not very well documented. I've thought about open sourcing my work, but not sure yet.

atmosx 1 day ago 0 replies      
HMAC for auth to avoid having the key exposed at every request.

For the rest: http://www.javabeat.net/rest-api-best-practices/

And documentation: https://github.com/Rebilly/ReDoc/blob/master/README.md

There many more comprehensive resources about sane API design (use HATEOAS, pagination, etc.) but you don't have to implement everything from v1

ps. SSL goes without saying even if it's a public API

rashkov 1 day ago 1 reply      
I really wish this topic got discussed more because there don't seem to be a lot of great options.

I personally use an OAuth 2 library using the "Resource Owner Password Credentials Grant" which is where you POST a username and password, and you get back a session token. OAuth 2 has a few other types of grant flows but they don't make as much sense for REST only APIs.

The downside of this password grant flow is that anyone can create a client to work against your API, and potentially they can steal passwords in a man-in-the-middle fashion. One way to prevent this is to give your "trusted clients" a secret token, and then verify that token before issuing a session.

However you can't hide a secret in browser-side JavaScript and even mobile apps can be be decompiled, so this isn't perfect either. Some devices provide a hardware enclave to store your secrets in, but most don't.

Another weakness is that if your SSL breaks, then you're essentially sending the passwords in clear text over the wire. Another commenter mentioned HMAC encryption of the password which might help. That this isn't recommended by oauth is concerning. It's not the best standard and password grant is its weakest form. [Edit: now that I think about it, HMAC requires having another shared secret between your API and your client. Storing secrets on the client is difficult, as discussed in the previous paragraph]

JWT seems new and not too widely used but worth looking into. It has its own downsides like some difficulty with revoking sessions from the server side, but there are workarounds for this.

I wish there was an industry standard answer that was secure and we could all be happy with but there doesn't seem to be much interest in the topic, going by how rarely it gets discussed. Best of luck!

weitzj 1 day ago 0 replies      
Be aware of JWT when it comes to Login/Logout behavior. JWT is not a good fit for user facing login unless you have a session ID on the server. But then you could as well use Cookies and a sessionID.

So I would do a Login via Basic Auth or a Form post or a JSON post with username/password and then get some kind of token/sessionID/JWT which expires on the server side. The token might be encrypted on the server side with a secret only known to the server, never the client. Use the sessionStore to implement a proper session expiration scheme.

nickmancol 1 day ago 0 replies      
Maybe you can take a look of an api gateway like apiman which can leverage the auth & authz to keycloak, or perhaps kong may be the one.
johnjuuljensen 1 day ago 0 replies      
Use basic authentication and ssl. The users credentials will be encrypted and the API will be easily consumable from cli and from browsers.
aprdm 23 hours ago 0 replies      
I've used mostly JWT, the tokens with a short TTL which makes it easier to control revoking/banning in the backend.

It is really simple to set up. In the frontend it's pretty straight forward to implement logout and other common behaviors even if the token is still valid because of the TTL.

amingilani 20 hours ago 0 replies      
Jwts are very straightforward to use, and you can get up and running with Auth0 for free in a few minutes.

They do have a 700 DAU limit, but when you need to, you can always implement your own JWT server

emmelaich 17 hours ago 0 replies      
Regarding cURL, note that Firefox and Chrome allow you to copy the request as a Curl command with their Developer Tools. (F12/inspect...)
quickben 1 day ago 0 replies      
Look into identity server 4. YouTube some videos about it and it should get you going. The rest is just picking what's popular for your platform/language.
diggernaut 1 day ago 0 replies      
you can (and should :)) use it (token auth) with ssl. To get SSL is not a problem today, and will cost you nothing if you use letsencrypt.org
Ask HN: Tell me your product ideas, let's see if I can build it real quick
9 points by ivanceras  1 day ago   7 comments top 3
jakobegger 15 hours ago 2 replies      
I want a simple reporting tool / dashboard.

Every week I run a couple SQL queries against my database and copy the results to a spreadsheet for graphing. I feel that there should be an easier / more automatic way to do that.

Existing software that I have looked at sucks because of one of the following reasons:

- it is ridiculously expensive

- it is complex to set up and using it would be harder than my current setup

- it is cloud based and would require sending credentials to my database on a third party server

pcarolan 23 hours ago 0 replies      
A job posting website ( I know ) where every posting is a job relevant contest. Sort of like kaggle for all industries where the winner gets a job.
cauterized 14 hours ago 0 replies      
A text editor with DOM-based search and replace for HTML.
Ask HN: What will happen when ads won't be profitable no more?
5 points by nowayyeah  14 hours ago   3 comments top 3
shakna 14 hours ago 0 replies      
I think you can already see it with a lot of those networks. Ads aren't enough to support a lot of them, anyway, once they outgrow the free servers.

* Some write books, and self-advertise those to readers* Some sell equipment or crafts, etc.* Some link with IRL events

Though your conversion rates around these sorts of things tends to be lower than ad-clicks or views, the returned gains are much higher. However, bloggers tend to do these things as a network. (Split costs/profits, etc).

bbcbasic 7 hours ago 0 replies      
If you mean niche blogs you can still get sponsorship and or promote affiliate products.

These are harder to block as it could just be an image or text link.

eddd 9 hours ago 0 replies      
ad networks won't work, but 'internal' networks will thrive. FB exchange, Google Exchange even Twitter, they make a lot of money since they control the entire RTB stack.
Ask HN: How many hours (on average) does it take you to finish a technical book?
6 points by questionr  14 hours ago   4 comments top 4
daly 7 hours ago 0 replies      
Measure your reading rate in pages/hour over a year.I average 33 pages per hour. My wife reads faster than I do,although the only measure is that she completes the same books faster (she has never tried measuring). As for understanding, I average 3 books on any given subject, 5 on some. The first book is really just an introduction to the subject (regardless of whether that is the target audience). The second book is much clearer because the terms are clear and the "goal" of formulas make sense. By the third book I can usually manipulate the ideas well. These days I usually also watch several youtube videos related to the subject. When using the material I often revisit certain books. I have several books that have chapters falling out from overuse, so "finishing a book" is not a way to think about it, more like "paging out to backing store" so I can retrieve it when I need it.
brudgers 10 hours ago 0 replies      
Depends on the book.

Many of them I don't finish. Some because starting the book meant just sort of browsing around and they stayed that way. Some that I started and read sequentially until I didn't and then maybe I browse in it or maybe I don't. Some because the book's content gets beyond my knowledge or interests or both.

Of the technical books I finish, it depends on the book. Depth of content, my level of relevant knowledge and the length of the book all play a role.

The pace at which I tend to read technical books when I am committed to reading them (but perhaps not finishing them) tends to be about twenty or so pages a night most nights while I am in that mode. That might mean ten pages a night for a deeply technical book (or thirty if it is so deep I am skimming it). It rarely involves doing exercises though sometimes it involves reading them.

For full clarity, I don't really worry about what I miss or not getting 'everything' out of everything I read. A lot of books are over my head. A lot extend beyond my interests. Also, I'm not in a hurry because the more other things I learn, the more I will tend to get out of any particular book.

ktRolster 5 hours ago 0 replies      
3-4 hours a chapter, just like in college. Math books more, books in a domain I'm familiar with less.
alexdgg 13 hours ago 0 replies      
I'm always going back to them, never 'finished'
Ask HN: How can I create a decentralized GNU-social-compatible website?
82 points by rayalez  3 days ago   26 comments top 12
paroneayea 3 days ago 1 reply      
So I have quite a bit of bias, since I work on a specification in this area. So yes, if you want to make sure it's GNU Social (formerly StatusNet) compatible specifically, use OStatus, which is a number of protocols combined in a specific way.

The most unfortunate part of all this though is that all these different applications, GNU Social, Diaspora, Pump.io, etc all speak different protocols and aren't all really interoperable. This leads to a "fractured federation", which really isn't great. I've been participating in the W3C Social Working Group to try to standardize federation. Here's our spec, ActivityPub:


Some background: it's derivative of the "Pump API", which is sort of the successor of OStatus, in the sense that the primary author of StatusNet (now GNU Social) wrote the Pump API in response to some perceived shortcomings in OStatus. We've done a lot of analysis to make sure that the protocol can handle all the kinds of things that you expect from the "big player" social networks, but in a federated setting.

Interested? Now's a great time to research and give feedback. We're looking to move to Candidate Recommendation status shortly, which means we're looking for feedback and implementations.

PS: I'm also involved in MediaGoblin, and we definitely intend to implement there. If you're interested in a bit of news from that end, here's a moderately fresh blogpost, including info on how to give your feedback: http://mediagoblin.org/news/tpac-2016-and-review-activitypub...

We're planning on using it for MediaGoblin.

chriswarbo 3 days ago 2 replies      
Not directly answering your question, but does anybody know of any server software I can run to take part in such decentralised/federated/etc. networks, which isn't complicated by multi-user, Web-frontend bloat? GNU Social, pump.io, etc. and even Matrix, XMPP and IRC, etc. all seem to assume I want thousands of simultaneous users. I don't; I'm the only user, but I want to integrate into the network.

Signing up for an account on someone else's server seems to defeat the point, yet I haven't found anything which I can run persistently on my server, access in a simple way (e.g. via SSH, a shared secret, a named pipe, etc.), and doesn't make me uncomfortable allowing it online (i.e. dynamic Web stuff).

I used to use Laconica (AKA StatusNet AKA GNU Social) a lot via XMPP, but then identi.ca switched off their bridge, and then switched to pump.io which doesn't seem to work with anything other than a Web frontend.

How would Usenet compare? I never got into it, but hear it's filled with spam :(

chriswarbo 3 days ago 0 replies      
AFAIK GNU Social uses OStatus, which uses WebFinger (for identities), Salmon (for replies), ActivityStreams (for posting), etc.

Some relevant links from Google:



I'd look for some libraries which implement those specs. If you can find some in Python, then integration would mostly be a case of marshalling data between your representations and those standards. If there's no Python support, then you could either make a library yourself or use a supported language to make a standalone translation server to convert between the standard formats and some some simple raw serialisation of your data.

Edit: also, security/encryption might be a hurdle. I played with Salmon years ago (using it as a plugin for the ocPortal CMS) when it was first announced; the example code was trivial to get up and running, but it required some not-so-straightforward crypto/certificate stuff to properly implement the "magic signature" part. IIRC this couldn't be done up-front by a developer; it would require some work for each deployment.

rogerbraun 3 days ago 0 replies      
I looked into this a while ago. Here are some notes I made:

- https://git.heldscal.la/roger/the_wired/wiki/OStatus

- https://git.heldscal.la/roger/the_wired/wiki/Salmon

Hope it helps. Essentially, you can basic functionality going by implementing webfinger and an atom feed. This old guide might be helpful: https://web.archive.org/web/20120306210855/http://ostatus.or...

jajern 3 days ago 0 replies      
You'll probably want to start with the GNU Social source code and also take a look at mastodon to see how they hook into GNU Social.

As for decentralizing, my thought would be that it should have been a developed around that from the start. I'm not an expert in it but I think that projects would be built around the decentralized idea and not later modified to be decentralized.

clacke2 3 days ago 0 replies      
You're on Python, but it might make sense to look at the choices made by https://github.com/hotsh/rstat.us and https://github.com/gargron/mastodon , to get some ideas. They're in Ruby, but the language is more similar to Python than PHP is, and some of the tooling and libraries in Python and Ruby are inspired by each other too.

It always helps to look at those who came before you.

dethos 3 days ago 0 replies      
I've been thinking about building some reusable django app that could be used in other projects to integrate and make them compatible with gnu social, but I never put the idea into practice (I still think it is a good idea).

Recently someone posted here on HN a compatible server (https://github.com/Gargron/mastodon), it isn't what you are searching for, but these 2 posts about the topic in a short period of time shows there is an certain interest.

Maybe its the push I need to start building that reusable app. Regarding your question, you should start by looking at https://www.w3.org/community/ostatus/ and the wiki.

marknadal 3 days ago 2 replies      
Is GNU social a spec?

You might be interested in general P2P decentralized tools like https://webtorrent.io/ and http://gun.js.org/ . There are tutorials that go with them, but nothing specific to GNU.

dorfuss 1 day ago 0 replies      
Have a look at Diaspora, it could be at least an inspiration:https://en.wikipedia.org/wiki/Diaspora_(social_network)
mxuribe 3 days ago 0 replies      
If you are interested in continuing to leverage your python skills (I assume this because of your ref. to Django), then perhaps building a bridge between Matrix and Gnu Social would be something BOTH communities would benefit from: http://matrix.org/docs/projects/try-matrix-now.html#servers
cabalamat 3 days ago 0 replies      
I wonder whether it would make sense for work in this area to (like Git) distinguish between plumbing and porcelain. So once the plumbing is written (with a reference implementation in Python or similar) it would hopefully be an easy matter for people to write porcelains to top of it.
teekert 3 days ago 1 reply      
Use IPFS [0] and take a look at Identi.ca [1].

[0] https://ipfs.io/

[1] https://identi.ca/

Tell HN: I think you're downplaying the PHP community
75 points by jqueryin  2 days ago   95 comments top 19
pwinnski 2 days ago 1 reply      
My theory is simple: Have you ever heard the pithy saying that there is no worse non-smoker than an ex-smoker?

I think many of the loudest anti-PHP voices are ex-PHP developers. They/We naturally assume our own experience is normative, and since we didn't know X, Y, or Z back when we were coding in PHP, obviously neither does anybody else still coding in PHP.

Or, more graciously, back then PHP was the best language we had learned up to that point (better than BASIC or Perl, say), but now we use Ruby or Python or something else, so now we recognize the deficiencies in PHP. Clearly those other people, just a few steps behind us on the path, need to also learn about the deficiencies in PHP and how much better X is.

There are any number of nuanced ways for that to be expressed, but ultimately I think it's mostly tribalism, and obviously unhelpful. Sure, I used to write PHP. Built my first startup with it, sold it, and stuck with it for a few years more even after that. And sure, I don't write in PHP any more. These days it's Python or Java or Clojure for me. Because PHP sucks? No, because it doesn't suit what I'm doing these days as well. And not necessarily for reasons related to the quality of the language.

s0l1dsnak3123 2 days ago 3 replies      
In British politics we have this concept of "The silent majority" which inevitably gets mentioned at referenda and elections. The effect was probably most prevalent in the Scottish independence referendum in 2014 where a no vote of 55% bet a yes vote of 45%.

Many many yes voters (including myself) were very surprised by this result - the internet was on fire with grass roots activism of all kinds. Glasgow had weekly rallies with thousands (sometimes tens of thousands) attending. And yet we lost.

I can't help but wonder if we're witnessing the same phenomena - a silent majority of people who feel no need to contribute to the discourse but have different opinions and values on the subjects us in the comments section are discussing.

Interesting stuff.

gkya 2 days ago 1 reply      
Php is objectively a bad language, and as the literature on why it is is wast like oceans, I don't feel the need to add to it. That said it's quite understandable why the language is used regardless of it's inferiority, there are some practical reasons, just like JavaScript. Thus it's understandable why people follow its news and also why it's harshly criticised. HN is a technical forum of tech entrepreneurs and computer hackers, and people discuss most often the technical aspects of things, and for Php it's more than expected that the tone be downplaying. Though I believe that should be taken as is and not be extended to community itself.
throwaway420 2 days ago 0 replies      
> So where does this discrepancy between vote counts and comments stem from?

People are probably concerned about not being viewed as a good or knowledgeable developer if they admit to using PHP here, so it's probably not a fight that's worth having for most posters. People don't always give their genuine opinions when they think that their personal reputations or livelihoods are on the line.

This isn't just the case in technical or career matters, but especially when it comes to personal reputation. Just ask people how many sex partners they've had: the results will probably be skewed up or down in fairly predictable ways if people think there's a chance that they'll be judged somehow based on the answer.

Personally I think PHP is a useful (and extremely imperfect) tool that is very appropriate to solve a fairly wide range of problems. For certain problems, it's arguably the best tool. That's why it's going to be around for quite a while.

nbouscal 2 days ago 0 replies      
I would attribute this discrepancy to a natural extension of pg's thoughts about the blub paradox (http://www.paulgraham.com/avg.html). Most PHP developers I've talked to justify their work in PHP by saying that essentially languages are more or less the same, and that PHP is "just as good" as any other language. It's rare for me to hear someone say that PHP is substantially better than other languages. By contrast, former PHP developers who now work in other languages usually say that PHP is significantly worse than other languages. It seems natural that someone who thinks there's a significant difference would be more likely to comment about it than someone who thinks the languages are basically the same. There's more to say about the difference than there is about a lack of difference, and it's relatively hard to provide real arguments for the lack of a difference it's usually more "there's no real evidence of a difference and this works fine for me."
chrisgoman 2 days ago 1 reply      
The PHP people are working instead of complaining about it https://slack.engineering/taking-php-seriously-cf7a60065329#...
1123581321 2 days ago 2 replies      
That's a fair criticism. I do a fair amount of PHP and participate in the community, so I know what you are talking about. That said, to me, the PHP professional development community seems anemic compared to the communities of other languages. I also think the PHP professional development community is smaller than that of other languages when measured as a percentage of the total professionals using the language.
ythl 2 days ago 2 replies      
People are worried about how they are perceived by other developers. It's the same reason a lot of people loudly pooh-pooh GameMaker (citing Godot, UR4, Unity, etc. as superior) even though it's a super powerful tool that, in the right hands, can be used to rapidly prototype very complicated and versatile games.
hotsy_botsy 2 days ago 3 replies      
PHP is the Toyota Corolla of programming languages. Not many are passionate about the Corolla, but it's one of the most widely driven cars in America.

I challenge you to come up with a better car analogy.

z0r 2 days ago 0 replies      
I've never worked on PHP code in a truly professional context, but I've had one-off (very) small jobs where I've had to perform maintenance on some PHP. I have no doubt that the language and tooling has improved over the years, but I have no desire to ever work on any of it ever again. This is my honest opinion, and I'm not writing it to signal anything. There are dozens of viable production languages and life is short, so why work with one that you find very painful? If PHP works for you, that's fine, but people who don't like PHP are going to be vocal about it because they don't want to find themselves in a situation where they have to write it. You might not end up being forced to write PHP for pay these days, but it's not unrealistic to imagine that you might end up writing (for example) Java because you need a job even if you really don't like it. So you end up with language advocacy and trash talking and there's nothing wrong with any of that, it's just a way to let off steam and preserve your sanity.
leovonl 1 day ago 0 replies      
See, the thing is: I spend much of my time trying to show people that good tools can be used to make good software. We have MUCH misinformation, and people don't even understand that you can prove a software right using theorem provers, don't know anything about type system - "C has types but they don't work" - and etc. I've heard arguments like this all the time, and that really sucks, because then you get limited by tools "you can hire people to work with".

In fact, I've been hearing for 10 years things like "what, OCaml? where do we hire someone to work on this?", "Haskell? nobody uses that", and more recently "we cannot use Rust as we don't have anyone that can possibly understand this". Saying "PHP is just another language/tool" is just throwing the towel without trying to understand anything.

What would you think if someone said "coal is just another fuel, stop trying to push electric, let me use coal and go on with life"? Well, a lot of people believe this, but let's pretent there's a consensus on this, shall we?

So, the question is: you CAN use PHP for doing web development. You can also use coal as a fuel. Not only that, but all libraries are written with this in mind, all code bases and fragments of code are focused on web development, etc. Coal is also combustible, a lot of manufactures dominate the technology, it's cheap, so.. hey, energy!

Even if the language is pure crap - as coal is as a fuel - people will only hit the crappy parts when their system is already implemented and being used by more people. "Hey, this language has a lot of issues" - "hey, this coal thing really polutes". Too late. You already have a full system implemented, you have experience with the language - or energy production technology... so you just change your workflow to accommodate this. Or you just never realize it - "whatever, no big deal" - and keep using it, as you see the advantages as more important.

There's tons of factors that contribute to the PHP popularity - the same thing with C, Perl, etc. Doesn't mean the language is good, and also doesn't mean everyone has to agree with you that "it's just another tool, let's go back to business".

So yeah, no.. I won't let you go on with PHP, sorry. I want better tools, better systems, and I want to spread knowledge. I guess we are going to agree to disagree on that.

tbirrell 2 days ago 0 replies      
Because arguing on the internet tends to be an exercise in frustration. If I like PHP and you don't it is unlikely that either of us will change the other's mind. So it's not really worth my time or effort to defend the language to virtual strangers. I can respect your dislike while going off to code in PHP anyway, and the world won't end. If you ask me my opinion, I'll be happy to share it, but I don't feel the urge to offer it unsolicited.
circlefavshape 2 days ago 0 replies      
/me raises hand

I've been writing php professionally since 2000, and I like it well enough. I know it so much better than any other language that, 20 years into my career, I can't see how I'll ever learn another one well enough to compare them.

mst 2 days ago 0 replies      
I write a lot of perl. You see a similarly depressing response there as well.

Mostly I file it under "hipsters gonna hipster" and then go back to doing something useful.

flanger001 1 day ago 0 replies      
I wish PHP had methods on primitive types, but I can live without them. PHP is not my first choice of language to develop in, but I don't think it's a bad language, and it paid my bills for quite a long time.
oliwarner 2 days ago 0 replies      
Use and hatred are not mutually exclusive. I can't be the only developer in here who has to maintain legacy webapps written in awful languages. If I see a post offering a 200 speedup on my crappy old PHP scripts, it gets an upvote.
crimsonalucard 2 days ago 0 replies      
Not everything in the world is apples and oranges..
ryanlm 2 days ago 5 replies      
People that state it's such a horrible language are "follow" types. I believe some people actually do think it's a bad language, but for the most part, I would say people are just following the status quo.
ryanlm 2 days ago 2 replies      
Flagged? Interesting.
Ask HN: Need career advice
16 points by bprasanna  1 day ago   6 comments top 6
faitswulff 1 day ago 0 replies      
You may be interested in Developer Evangelism: http://thenextweb.com/dd/2012/06/03/a-day-in-the-life-of-a-d...

> A developer evangelist is first and foremost a translator. Someone who can explain technology to different audiences to get their support for a certain product or technology. It needs to be someone who is technical but also capable to find the story in a technical message A good developer evangelist can get techies excited about a product by pointing out the benefits for developers who use the product on an eye-to-eye level.

jmfurlott 1 day ago 0 replies      
It sounds like you may enjoy working in open source. I would suggest finding an employer than embraces open source and allows you to spend time working on those projects.

Any company can always use improvements to tools such as build tools like webpack, etc. The entire community benefits from those improvements and that may align with your interests.

cbanek 1 day ago 0 replies      
A lot of large companies are starting to gap the breach between manual test and dev. While part of this is writing automated tests for each feature, a large part of this is writing tools and frameworks to help with testing, debugging, and operations.

I've worked in a few "tools team" job descriptions. I personally enjoyed it. By being internal tools, it allows you to iterate faster and do more interesting technical things than could be publicly released. If you are working for an open source company, these tools can be very useful for other companies and are of great value when released.

Look for job descriptions that have tools, devtools, etc in the title, or any senior test automation roles where this would likely be most of your job (making the shared parts that everyone else uses).

Good luck!

gaius 1 day ago 0 replies      
Continue to do what you are doing, but start a blog on the side. Do this for 1-2 years so you can see if you have what it takes to e.g. build an audience, and also if it really is what you want to do full time. This is career not lifestyle advice, so whatever you decide, make sure you can get paid to do it.
kaikai 1 day ago 0 replies      
> sharing knowledge or making useful information available to everyone what interests me the most.

This sounds like support engineering might be a fit. It would allow you to teach people about code and help develop good documentation while still utilizing your programming skills.

jason_slack 1 day ago 0 replies      
You and I have similar interests. I write documentation and perform other community evangelism tasks.
Recommended Self-Study Path for Statistics
68 points by tamiddlemanager  3 days ago   23 comments top 13
mitchelldeacon9 3 days ago 1 reply      
Hello, I studied economics and statistics in college and grad school, and worked as a teaching assistant for undergraduate statistics courses. Here is a short, annotated bibliography of my favorite statistics books.

1. Ayres, Ian (2007) Super Crunchers: Why Thinking by Numbers is the New Way to Be Smart

[Good introductory summary of the main concepts in statistics with many real-world examples]

2. Bernstein, Peter (1996) Against the Gods: Remarkable Story of Risk

[Intellectual history of statistics, accessible to beginning students.]

3. Healey, Joseph (2005) Statistics: A Tool for Social Research, 7E

[This is the text book that was used in the undergraduate statistics courses while I was working as a teaching assistant at UC Santa Cruz.]

4. Kahneman, Daniel (2011) Thinking, Fast and Slow

[Kahneman combines cognitive psychology with statistical concepts; highly recommended]

5. Silver, Nate (2012) Signal and the Noise: Why So Many Predictions Fail, but Some Don't

[Silver's book offers an excellent summary of major concepts in statistics and how they are applied to real-world problems]

6. Taleb, Nassim Nicholas (2005) Fooled by Randomness, 2E

_________ (2010) Black Swan: Impact of the Highly Improbable, 2E

[Important critique of statistics and how it is mis-used and mis-applied, particularly in econometrics]

Hope this helps. Shoot me an email if you have any questions. Good luck.mitchelldeacon9@gmail.com

qwrusz 3 days ago 2 replies      
I encounter this a lot at work. People needing more advanced stats skills for a new role and not having much training in it or if they did it was years ago. (I work in finance which has become increasingly quant and stats heavy - faster than training in it has).

My advice: Figure out exactly what type of stats work your teams are doing. Make a list of those topics. Random example: are those KolmogorovSmirnov or MannWhitney tests? Then hire a tutor who knows that stuff - maybe a grad student somewhere, can be remote over skype even.

If you are not 100% sure what you are looking at at work and what to put on this list of topics...hire a tutor and show them stuff from work (if the work is proprietary/confidential, recreate it with dummy data or just give rough examples) and ask what topics would be needed to nail one's understanding of this work.

Statistics is a huge subject and if you buy a textbook you may spend a ton of time on stuff that's just not relevant when you could be going a bit deeper into a sub-topic that is very relevant to your work. Also a lot of what looks like statistics is actually found under applied math books/courses not statistics.

Lastly, in case this needs be said, after you get the basics on a stats topic, the most important question to ask a stats tutor is "where do people usually fuck up when doing this?"

Stats in practice is often more about not making errors than it is about accuracy. Find out where people often fuck it up, especially as a manager and 2x as they are not statisticians either it sounds like.

JSeymourATL 3 days ago 1 reply      
Get your own consigliere. Hire a consultant to advise/mentor you individually.

You might find one on Hourly Nerd > https://hourlynerd.com/your-matches/information-technology-a...

sn9 3 days ago 0 replies      
Allen Downey offers many free and excellent textbooks online from his Green Tea Press [0].

You can learn statistics, Bayesian reasoning, and a bunch of other stuff.

Sites like Coursera, edx, and Udacity all have courses for other presentations and applications of statistics at pretty much every degree of difficulty.

[0] http://greenteapress.com/wp/

wjnc 2 days ago 0 replies      
Old but gold. Kennedys 'A guide to econometrics'. Not so much a textbook as a book that ties theory to practice and explains common pitfalls and intuitions. It's one upmanship in statistical practice.

You shouldn't try to learn stat on par with your teams. Learn to ask the right questions.

If you prefer learning by doing then Elements of statistical learning would give you some modern skills plus add good questions (model testing and prediction are imho more important than base skills, and central to the work of Tibshirani et.al.) to your book.

I think the coaching approach in the other response thread is worthwile as well. If you weren't really into stats before and haven't read up when it wasn't part of your day job, the route of learning the skillset seems a detour. Possible if motivated ofc, but you need advice on managing stat heavy teams. That is a different, though related ballpark.

yogeshp 2 days ago 0 replies      
You can take free online courses to refresh your Statistics knowledge.


Coursera - Making sense of Datahttp://academictorrents.com/details/a0cbaf3e03e0893085b6fbdc...

MIT 6.041 Probabilistic Systems Analysis and Applied Probabilityhttps://www.youtube.com/playlist?list=PLUl4u3cNGP61MdtwGTqZA...

Statistics 110: Probability - Harvardhttps://www.youtube.com/playlist?list=PL2SOU6wwxB0uwwH80KTQ6...

Udacity also has few courses on Statistics.

ranc1d 2 days ago 0 replies      
I'm working my way through these videos as way of refreshing my basic knowledge of stats.


Very well explained.

NPMaxwell 2 days ago 0 replies      
I'm currently addressing this need where I work and posting my training materials at http://RForecasting.com as they are developed. Also I like https://www.amazon.com/Data-Matters-Conceptual-Statistics-Ra..., but you can see I'm biased on that.
faux_intellect 2 days ago 0 replies      
CMU's self-paced and free Open Learning Initiative classes on statistics might be helpful early on:

Empirical Research Methods:http://oli.cmu.edu/courses/future/empirical-research-methods...

Probability and Statistics: http://oli.cmu.edu/courses/free-open/statistics-course-detai...

Statistical Reasoning: http://oli.cmu.edu/courses/free-open/statistical-reasoning-c...

jimmahoney 2 days ago 0 replies      
This free online textbook using R is what I used when I last taught statistics in a college setting :https://www.openintro.org/stat/textbook.php .
IndianAstronaut 3 days ago 1 reply      
Discovering Statistics Using R by Andy Field is a fantastic and entertaining book.
hanniabu 2 days ago 0 replies      
I've heard good things about Naked Statistics by Charles Wheelan, but I've never actually read it myself
lolcod 3 days ago 0 replies      
Why not to ask your developers how they studied this field?
How do you find people to work with you on projects?
11 points by alinalex  1 day ago   6 comments top 6
sebg 1 minute ago 0 replies      
Start working on a side project and write about it. Then submit your post(s) to the relevant places like Product Hunt, Hacker News, relevant sub-reddit, etc. This a) makes you start producing something, b) gets you to start "marketing it", c) allows some people to notice what you are doing and potentially start chatting with you about it, and d) is focused on producing rather than "collaborating".
rlancer 59 minutes ago 0 replies      
I'm Robert Lancer the CTO of Collaborizm.com. We help you build your team by engaging with our community in discussions.

Some success stories:

Stans Neuro Headphones - 261 team members https://www.collaborizm.com/project/41G1VZWCx

3D RPG Game - 75 team members https://www.collaborizm.com/project/146

Room Cleaning Robot - 61 team members https://www.collaborizm.com/project/BJRTqrTs

Feel free to ask me any questions rob@collaborizm.com

aminozuur 10 hours ago 0 replies      
This is the one problem that I always have. I think of little project that has potential, and could be hacked together in a couple of days, but don't know people who'd like to be part of it.

Perhaps we can come up with an idea worthy of working on. Click on my profile to find my email address.

pythonbull 13 hours ago 0 replies      
If you hire people just because they can do a job, theyll work for your money. But if you hire people who believe what you believe, theyll work for you with blood and sweat and tears.
bbcbasic 1 day ago 0 replies      
I'd try find a repo you like and fixing bugs via pull requests. You can then see how you work together, how available they are, their coding and code review style. Then at some point offer to do a greenfield project together.
hemdrup 1 day ago 0 replies      
Go to events that interest you
Ask HN: What's the most amount of entropy two humans can create in 30 seconds?
12 points by logancg  1 day ago   8 comments top 6
nenadg 17 hours ago 0 replies      
You can count nearby people, cars, windows, cats, dogs, buildings, whatever you agree upon, those things are pretty pseudo-random, only limit is familiar environment, but you can find other alternatives there (number of pens on one's desktop, number of books, etc.).
Johnyjohnson123 9 hours ago 0 replies      
I'm not sure what's allowed. Can use current seconds in someone's watch, for example? Or maybe ask some random person to say a random word, and then use the position of the first letter of that word in the alphabet?This sounds like a really fun problem but I'm certain about the rules.
BillBohan 1 day ago 0 replies      
I worked in a shop where we played a game called Chino. Everyone started with 3 coins in their left hand. Each transferred 0, 1, 2, or 3 coins to their right hand and extended their closed right hand. Each made a unique guess of the total coins. A correct guess wins the benefit or liberates the guesser from subsequent rounds to determine who had to do the dirty work. Modified for your situation, each would agree to have 0-3 coins when you meet. The total could pass for a pseudo-random number.
bbcbasic 18 hours ago 0 replies      
Rock paper scissors? Since you are both trying to win, and being predictable means losing you'll be as random as you can be.
Johnyjohnson123 10 hours ago 0 replies      
this is the nerdiest thing I've heard in my life, haha
gus_massa 1 day ago 1 reply      
Are dices allowed?
Ask HN: What is the bus factor at your company?
24 points by guessmyname  2 days ago   16 comments top 8
mey 2 days ago 2 replies      
Disturbingly high for the size of the company. I can point to several locations where one person is pivotal to core business functions and causes issues when they go on vacation.
bbcbasic 1 day ago 1 reply      
I have a feeling people will be biased into thinking their bus factor is lower than it really is.

Day to day experience may make it seem like if John or Jane got hit by a bus, nothing can happen.

In reality businesses adapt and there are probably other people that can step in. Once they must, they will.

yolesaber 9 hours ago 0 replies      
Zero. Nothing works anyway.
nicky0 2 days ago 3 replies      
The what now?
chris_7 2 days ago 0 replies      
jfrisby 2 days ago 0 replies      
I've worked at maybe two companies with a bus factor > 1. Maybe.
lm2s 1 day ago 0 replies      
jpindar 2 days ago 0 replies      
Anyone using rails on win?
4 points by netpenthe  1 day ago   3 comments top 2
brudgers 12 hours ago 0 replies      
The pain of running Rails on a Windows machine is one of motivations behind Microsoft creating Ubuntu on Windows. It was built to improve developer's experience. For the current state, that's probably a good way to structure a google search. My impression from what I've read is that it's reasonably good. But it's just what I've read.
angersock 22 hours ago 1 reply      
Every time I've dealt with Ruby and/or Rails on Windows I've been annoyed--typically at events like Rails Girls where we have to try it out but still have problems.

The basic install is not terrible, but the very second you start needing thinks like Image Magick or any gem that might expect a Linux build environment or POSIX tools everything breaks into shambles.

If you want to run Rails on Windows, install Virtualbox on Windows, and then load a Linux VM into it.

Ask HN: Fired at 51 weeks by prominent startup?
89 points by VestingBurn  4 days ago   83 comments top 23
akg_67 4 days ago 2 replies      
Don't say anything about the company publicly. Hire an employment lawyer, let him/her go after the company. Assuming your first batch of options were going to vest at one year anniversary, firing at 51 weeks seems suspicious.

Once lawyer has extracted what s/he can from the company and settlement doesn't prevent you from further pursuing, send complaints to department of labor and state attorney general. While DOL and AG office most probably will not do anything, The complaints will go on file at both offices. If the company is pulling similar stunts with other employees and DOL/AG office sees series of similar complaints, they may go after the company.

Privately bad-mouth the company to your network (not intentionally), word gets around and will warn others. Make sure you never work for another company connected to founders and senior executives of this company. Unethical management and investors at the top attract unethical people and breed unethical culture, they will never change their behavior.

sulam 4 days ago 2 replies      
This is rude move in several ways. First of all, at several prominent companies where I've worked both as a manager and an individual contributor, you would let the person cliff their year if they made it that far. If you were so bad a fit that it was worth firing you in the first year, they could have fired you in the first six months just as easily.

Which leads me to another way this is rude: when I'm looking at an employment record and I see someone was somewhere 6 months or less, I don't think much of it. Clearly something didn't work out, even if it wasn't mutual. When I see someone having been there one year, I assume there's one of two options: either the employee just wanted to cliff their shares and then move on or the company let them vest and then fired them. Either one of these does not reflect well on the employee. To let you stay 51 weeks and fire you without options is a double whammy -- I'm going to have the same negative reaction and you have no upside. :/

When you look for your next job, you may want to emphasize that you were at UnicornCo for less than a year to avoid this bias or at least offset it some. That will obviously require you to have a reasonable explanation for why there wasn't a good fit, but you were going to need that anyway.

Forgot to add: contesting your unemployment at a reasonably sized company is really unheard of. Even when someone is fired, unless they are fired for cause (like, they stole stuff, harassed someone, etc) you're going to give them unemployment. If I'm interviewing you, this detail will make me want to dig further into your story. Take that as you will.

vabmit 4 days ago 0 replies      
A lot of people said hire a lawyer. I think that's wrong. I would just move on and find another job and forget about this start-up. My guess would be that either you had bad luck and got involved with a bad founding team or that there were performance issues/issues with your working relationships/personality. Either way just moving on is the mature thing to do. I would never hire anyone who mentioned the word "lawyer" over a firing (let alone actually sued a company) that's just too much of a risk for a small company/start-up. Talking to other engineers at the company to "warn them", or better yet, gain an understanding of why you were let go would probably be helpful in your own career development. When I've had to fire a technical person, I've always gone over the matter with their co-workers to make sure there is coverage and not a skills gap with out the person. If you do sue, your name will most likely show up in public court filings. That could end your career with start-ups unless the start-up turns out to be a total publicly visible disaster. The economic damage to your reputation will likely outweigh any awards from the court (if you even win the case)... especially after you pay your legal team.

Were your options really "clawed back" (meaning recouping compensation that has already been given) or did they just not vest? Unless you mean founder equity or RSUs instead of options, I can't see how you would have had them after 51 weeks. Usually, people vest like 25% of their promised equity compensation after 1 year (the "cliff") and then a small percentage each additional month until they fully vest after 4 (or sometimes 5) years.

twostorytower 4 days ago 2 replies      
First off, I'm sorry this happened to you. That's a really sucky thing for a company to do to somebody.

That said, you're not in a good place right now. Don't make any rash decisions in that state of mind. It's really not in your best interest to take this public.

At the end of the day, the company didn't do anything illegal. You most likely signed a standard 4 year/1 year cliff vesting schedule, and it did what it was designed to do. What they did was immoral and wrong, but not illegal. Sure, you can still sue (unlikely you'd win but they may settle to avoid a costly legal battle). And if you think a year of your options are going to be really valuable, it may be worth discussing with a lawyer if you're willing to foot the bill.

My best advice - focus on finding a new job right now. Land somewhere with a great track record for employee well-being so you don't run into this in the future. Get settled into that first. There's no benefit to making a big deal about this right this second. Bring yourself to a good place, then explore your options.

jacquesm 4 days ago 1 reply      
Check your contract for acceleration clauses in case you've been fired without cause you might still have a chance.

Regardless of whether or not they are in this contract this is something that you should always insist on when signing up with a start-up.

Have your lawyer that you pay check your paperwork before signing to make sure it is fair, don't be pressured and don't take 'this is standard stuff' as a reason to sign it without review.

Yes, it will cost you some money but it may save you much more.

late2part 4 days ago 2 replies      
I would handle it publicly if I felt I was treated unfairly in a way that suggests the company is inherently biased.

I don't understand your use of 'clawed back.' Commonly stock options don't vest until the first year - were your options really clawed back or were they unvested at termination?

Why were you fired?

It's plausible you can make a statement anonymously, while your employer would know who it is, most hiring managers in the future wouldn't know it was you, or of the issue.

There's nothing wrong with going on unemployment when you're terminated. You directly or indirectly pay for that unemployment insurance.

brudgers 4 days ago 0 replies      
That sucks. My random advice from the internet is that there's almost certainly nothing to be gained by turning a termination into news on the internet. The experience is sunk cost. Rationalizing a marginal action as righteous is still rationalizing. And, unless you have forty four hundred followers on Twitter, the primary damage is likely to be to yourself...the company probably outguns you on social media and when it comes to employment networking. Besides, if you had forty four hundred followers on Twitter, there would have been a tweetstorm when it happened.

Anyway, success is very often the best form of revenge on asshats. Good luck.

pavlov 4 days ago 1 reply      
Would it make sense to share your experience on Glassdoor? That's probably the most widely read forum if you want to warn others of this company.
kogir 3 days ago 1 reply      
Most startup options amount to nothing. What happened to you is reprehensible, but be careful to ensure you don't spend more money pursuing this than you're likely to gain.

Remember that options are just the privilege to exchange real money that has value now for restricted private stock you can't easily sell and will very likely be worthless. Obviously you know more about the company having worked there - just be careful indignation and a sense of justice don't prevent you from making the optimal financial decision.

anon543210 4 days ago 4 replies      
This actually happened to me as well. I was released about one month prior to my shares vesting, but they didn't contest my unemployment. Still its a real bs thing to do. I wish I could say something publicly and let others know about the mess that place was but I decided against it. They also made me sign papers prior to getting my final check and vacation pay that said I wouldn't take any action against them.
JSeymourATL 2 days ago 2 replies      
> How would you handle being fired without cause...

Get up... dust-yourself-off, and Move On!

The knee-jerk lawyer-up advice is asinine. The only guys who win that game are attorneys. Are you prepared to spend $5-10K+ in 'modest' legal fees so you can to go to war with a former employer? Do you really trust the courts will right the wrong you perceive?

It totally sucks being fired! The biggest bruise is to your ego and immediate cash-flow. Best to put that time/money/energy into connecting with a new, potentially more rewarding job.

sfifs 4 days ago 0 replies      
See a good employment lawyer. Unless you were fired for unethical practices, harassment, theft types of reasons, almost certainly a contention for wrongful termination can be made in a case like this. Your employer has taken a ridiculous risk.
justin66 4 days ago 1 reply      
Ask an unemployment lawyer to get as much from them possible. Ask that lawyer about the risks of talking publicly. The people here are not paid to worry about your well being...
paulcole 3 days ago 1 reply      
You're the guy who got fired. Why would anyone listen to you? Just because it wasn't for cause doesn't mean they just didn't get fed up with you sucking and decide to get you out ASAP.

This is how people will perceive this.

lien 4 days ago 0 replies      
I would sue the company. most definitely. There's no need to make a scene publicly, but if you were let go without much warning, you would be able to win. CA protects workers and a good lawyer would be able to find a good cause for this.
rajacombinator 1 day ago 0 replies      
This is why vesting cliffs are BS. (And I say that from a founder perspective.) Sorry you got screwed.
debacle 2 days ago 1 reply      
Assuming this is in CA, you have a lot of tools and protections available to you as an employee.
smegel 4 days ago 2 replies      
> The startup contested unemployment

What does this even mean?? (non-American here).

cjhanks 2 days ago 0 replies      
If you were at 3D robotics, forget it. Might be coincidence.
nstj 4 days ago 0 replies      
fleitz 4 days ago 2 replies      
Name the company, don't name yourself.
mattbgates 4 days ago 0 replies      
Sometimes it is a blessing in disguise, but go ahead and share it publicly if you wish, especially if you were fired for reasons unjustified but there is also the chance that the startup simply let go of the people they thought were the least valuable asset to their company. Similar situation happened to me.

I say it might be a blessing in disguise because... I worked for a software company that designed kiosks for solar panels and I worked on the design of the software, how it looked, special requests, etc. Anyways, in the interview, they said they were hiring me to help catch them up.. they had about 150 clients they had to cold call to get information from them, assets, etc. -- these clients had already paid their money, but hadn't received kiosks or software. Anyways, to make a long story short, about a year later, I had knocked them down to about 30 clients left.

Meanwhile, our competition was also growing, and these companies were developing in HTML5, whereas we were still building in flash-based software, with an in-house developer working on it upgrading us, but the actual update never seemed to come. Anyways, it seemed that because that company refused to update their software, we lost out to our competition, or we were starting to lose.

I was called into an office, where human resources told me they had to let me go. So they gave me the choice: If I didn't file for unemployment, they would give me a 3-week severance pay. Fortunately for me, I was working a second job, so I actually couldn't file for unemployment, so that helped me out and was like getting paid for doing nothing for 3 weeks. Awesome how some things worked out, though in the first week was rough, I was certainly devastated.. nothing can prepare you for the moment you get laid off... and you go over so many scenarios in your head, "What did I do wrong? What could I have done better? What email did I forget to send? What assignment did I miss? Was it that one time I was 10 minutes late coming back from lunch? Was it that one day that I was running late to work because I overslept?" You go over everything because honestly, you just don't really know.

I had later found out they were struggling badly, financially, and I was the most expendable, so they let me go. I was lucky because I also kept in touch with my former co-workers, who all were not being paid on time, who were still showing up to work, not knowing if they were going to get paid or not, and some of them had to take the company to smalls claims court to get what they were owed. The company soon went under and I think they managed to stay in business by keeping three employees, simply for maintenance issues for existing clients.

So lucky to be let go first.. as everyone else would soon have to struggle, whereas I had a nice free ride for 3 weeks of making money by doing nothing, but accepting the fact that they laid me off. Did I write about this company? Sure did but there was and is still no reason to mention their name or be mad at them. Tough world of competition out there and they lost. Do I expect anything from it? Absolutely not. Life goes on and you find other companies.

Startups are either successful.. or they aren't. And I am sure no startup wants to fire or lay off their employees, but sometimes, the startup is just failing, and they feel horrible themselves, wanting to have been successful, but realizing the reality of the situation.

Life goes on.. the second job I was working at the time.. became my primary job, and I still hold the position over 4 years later, as a very satisfied employee who loves his job. Look to it as a learning process, an experience, and keep moving on til you find the job or come up with your own that will set you up for however long you need.

1_listerine_pls 3 days ago 0 replies      
The reason?
Ask HN: I'm an old programmer, do I qualify for diversity consideration?
76 points by forgottenacc57  21 hours ago   70 comments top 9
gracenotes 20 hours ago 1 reply      
Maybe? The type of diversity that companies care about (to contrast with the many strawmen out there) happens to be good for the bottom line. That is, a team with 5 men and 5 women is likelier to perform better than one with 10 men [1]. Some explanations I have heard are that diversity brings perspective that wouldn't be present in a monoculture, and that it improves psychological safety which is a huge determiner of team performance [2]. There are models out there made by actual social scientists of why diversity helps. See [3] for instance, has both elements.

It does seem like age-based discrimination would have a negative effect on psychological safety, as with any discrimination due to conscious or unconscious biases. Regarding perspective, an experienced individual could either bring in valuable insight from their experience or constantly veer towards the status quo, partly depending on how you want to look at it.

I think the answer is: it is complicated. You now have my ideas on why diversity is valuable. Does age fit that model? (Even if not, of course, age-based discrimination is not good.)

[1] https://news.mit.edu/2014/workplace-diversity-can-help-botto...[2] http://www.nytimes.com/2016/02/28/magazine/what-google-learn...[3] https://hbr.org/2013/12/how-diversity-can-drive-innovation[4] https://www.fastcompany.com/1841060/redefining-diversity-new... - bonus

purple-dragon 21 hours ago 7 replies      
Serious question: are you trolling? I hire programmers for a startup. When I do, we do not care at all how old you are. We care about attitude, skills, and aptitude.
jackyinger 21 hours ago 0 replies      
Age based discrimination is a thing, but it is nearly orthogonal to the context in which corporations think about diversity. This orthogonal its is a product of senior folks supposedly expecting more pay, and lack of oversight using age as a metric of diversity.

At the tech giant I work at, older technical folks seem to either climb the corporate ladder a few rungs or get ground into contracting peons. It's not pretty...

I find that a lot of 'new' ideas in computing are just the latest iteration. So there's certainly value in having folks around who have seen many iterations.

ThePawnBreak 21 hours ago 2 replies      
No, diversity is doublespeak for women or black people.
ddorian43 21 hours ago 2 replies      
What about me? (I'm young but feel old from all the js-framework-of-the-week/pico-services(a service for every non-constant value) /docker-in-kubernetes-in-vm/golang mumbo-jumbo)
ewr24 20 hours ago 2 replies      
Probably not as old (white?) male. But there is a simple way to increase your diversity.

You could start identifying as a woman, it is just a verbal identification, no other changes are required. This way you would also become lesbian.

In some countries you can legally change your race, by religious conversion (Sikht in UK). Again, religion is just a verbal identification.

ntlk 19 hours ago 0 replies      
hex13 21 hours ago 2 replies      
how old? 60+? 50+? 40+? 30+? 20+? (I'm serious, sometimes even 25 year old devs feel old).
shams93 21 hours ago 0 replies      
You might if you have a disability. Companies can get federal tax credits for hiring disabled.
Ask HN: Best place to host a static website with SSL and CDN?
37 points by Im_a_throw_away  4 days ago   32 comments top 19
dflock 4 days ago 1 reply      
A small static site on S3 with the free cloudflare plan in front will cost you ~$0.50 per month, with moderate traffic. Probably less than fifty cents, especially to start with, if your traffic is low.

They support all the requested features.

Yes, hosting this on S3, with either cloudfront or cloudflare, does take some (one time) setup.

The payoff is that you don't have to rent and deal with a server and ongoing costs are very very low.

ne01 4 days ago 1 reply      
At https://www.sunsed.com we are working on a solution exactly as you described! Not ready yet! I just want to see what you think about it in your case.

In version 3 (currently under development) you'll have a server.htmlpp to custom route your traffic and a file manager to treat your website content as static files.

You'll be able to import/export from any static website generators. Also edit online and use a command line to push/pull changes so you can edit from your computer.

Please contact me if it's interesting to you!

By the way checkout https://htmlpp.sunsed.com for information about our HTML++ language, you might find it interesting!

Also checkout my explanation of how v3 works: http://seyedi.org/my-cms-idea

ETA for v3 is January 2017.

Edit: Made the URLs clickable.

Kalium 4 days ago 1 reply      
> 4. Something simple to use, because I don't want to lose time learning/configuring stuff. So the Amazon combo S3+route53+cloudfront won't be possible for me.

"learning/configuring stuff" isn't time lost. It's the price you pay to get a lot of functionality for a minimal financial cost. None of these items are complex, costly, time-consuming, or poorly documented. You're worried about at most a dozen hours of time once.

If you're not willing to learn to do things for yourself, you're going to be paying someone else to do it. At which point you're either blowing your budget or compromising on your needs.

The answer to your needs is acquiring the skills you need in order to do it all for under $10/mo.

nickthemagicman 3 days ago 0 replies      
How is Openshift now mentioned here? You have all that stuff you asked for plus insane amount of additional stuff plus the bronze plan is free!

Its a hobbyests dream!

I love openshift from what Ive been using it for so far.

seanwilson 4 days ago 0 replies      
Netlify seems like an easy choice as it does everything you ask for and is $9 a month if the free version isn't enough. It couldn't really be much easier to deploy with it (push via Git or drag and drop in the browser).

For what it's worth, you can do redirects on GitHub Pages with HTML redirects:https://help.github.com/articles/redirects-on-github-pages/

I'm with you on avoiding AWS for static sites as there are much easier options like the above.

kennycox 2 days ago 0 replies      
If you are looking for cheapest and best options to host your website, then you should choose http://www.web.com/landing/hosting50 - 0.50/month.

As we talk about SSL certificate for cheap price, you can choose https://www.ssl2buy.com where you will get free installation support.

For CDN, https://www.cloudflare.com/ is the best option. You can go with free plan as well paid plans to enable more features.

detaro 4 days ago 0 replies      
AaronSmith 3 days ago 0 replies      
There are cheap and best web hosting plans available in your budget and requirement here: http://b2evolution.net/web-hosting/budget-web-hosting-low-co... and you can install SSL certificate to secure your domain at cheapest price here: https://www.cheapsslshop.com/comodo-positive-ssl, which will cost you $4.95 per year.
marktangotango 4 days ago 0 replies      
No CDN or 301, but our service [1] offers file hosting, custom domains, https via Lets Encrypt certs. We also offer API creation with what we call "API Queries" (SQL queries executed via POST requests). You can post forms with captcha. We built our service to be very simple to use, just upload your html, css, javascript, and assets.

Just curious about the 301 requirement, what is your use case for this? Ie wondering if this is something we should consider supporting.

[1] https://www.lite-engine.com

csallen 3 days ago 0 replies      
Let me add my voice to the chorus of people championing Netlify. When HN took down my website https://IndieHackers.com a few months ago (primarily due to a config error on my end), I was able to move the site over to Netlify and have it up and running in minutes.
VertexRed 4 days ago 0 replies      
For $10 per month I'd say your best bet would be shared hosting (or a VPS at best) together with Cloudflare's free plan (for the SSL and CDN).
tylercubell 4 days ago 2 replies      
GitHub Pages and Cloudflare.
mmosta 4 days ago 1 reply      
AFAIK there are no static host services that offer user defined response codes, you'll most likely have to prepare your own.
stevenhubertron 4 days ago 0 replies      
I use Netlify to host a number of sites that get 40k visits a month for $9 a month. It's been a great service.
asteadman 4 days ago 0 replies      
I use s3+cloudfront (route53 not strictly necessary, almost any dns host will do). Honestly, its a one-time config and after that its very simple. Cost would be well under $10 unless you've got crazy traffic (Problems I wish I had...)
jgowans 3 days ago 0 replies      
You might be interested in checking out Aerobatic. https://www.aerobatic.com

disclaimer: I work at Aerobatic

arikr 3 days ago 0 replies      
Surprised no-one has suggested this: Firebase. Free, incl SSL. Not sure about CDN, but you could use Cloudflare for that.
J0rdanVa1dez 3 days ago 0 replies      
> 1. Custom domain with hosting. You don't neet Https and SSL.

> 2. A CDN, for super fast loading.

> 6. oryginal content on your pages.

ThatGeoGuy 4 days ago 2 replies      
> 1. A custom domain with ssl, for an httpS url.

This is pretty straightforward as long as you're setting up any VPS or have access to the server itself. If you wanted something like SquareSpace or Github Pages, this is much more difficult.

> 2. A CDN, for super fast loading.

I honestly have no idea what this means. A CDN can help if you have a large website over multiple data-centres, but really seems to be overshooting what you are trying to do here. Are you just thinking Cloudflare? What's the reason for this? You're hosting a static website, it's not like you've got to send massive amounts of data over the wire, so I can't see how having some large CDN backing you is going to provide much if anything at all. You should maybe specify what you really want here, since it sounds like you're worried your site won't be mirrored and may have downtime or might be slow in some countries, but instead you're phrasing it as if a CDN is a requirement. Why is a CDN a requirement?

> 3. Be able to create 301 redirects with something similar to an htaccess. So it seems GitHub page are not an option.

As long as you set up nginx / apache yourself, I don't see why this is hard to come by. Any VPS service would work for this.

> 4. Something simple to use, because I don't want to lose time learning/configuring stuff. So the Amazon combo S3+route53+cloudfront won't be possible for me.

Indeed, something "simple-to-use". Perhaps this goes back to "simple is not easy", and it sounds like you want easy based on everything so far.

> 5. And not expensive, less than $10 per month.

This seems to be the part that I don't quite get. How are you supposed to use a CDN for a service that has running costs of $10 / month? I mean, that could be the cost of one server. Take DigitalOcean for example (I don't work for them, but am a customer). You could pay $5 a month for a small VPS, with very little storage (20GiB). This would allow you to host your website, with your own domain, with LetsEncrypt certificates for TLS. You wouldn't have any CDN backing you, but you could set the whole thing up just as you would any other server, and if you know what you're trying to do you could even do the whole setup on a Docker container and just deploy the whole thing through their API.

That said, keep in mind if you want the total cost under $10 / month you're probably not gonna make it. Your domain could be anywhere between $25 - $40 a year (assuming it's cheap), which means that monthly you'll probably be paying about $8-$9 a month just for the VPS service and your domain. Any cost on top of this (excluding time, which will be the major investment at first) will pretty much put you over your limit. Also, if you end up deciding that the $5 DigitalOcean plan doesn't provide good enough specs / limits, then you'll be shifting to the $10 and $20 per month plans which will definitely put you over budget here. Another VPS provider, http://edis.at, that I've heard good things from provide some differing plans based one what you're looking for, but total overall cost is pretty similar.

There's lots of information about stuff like DigitalOcean online, but I fear that I don't understand your needs in depth enough to just recommend getting a VPS and going for it. It seems like the best path to take for a static site, but the remarks about CDNs and such seem to make me wary pushing that advice.

       cached 17 October 2016 04:05:01 GMT