Sponge learning is awesome, but you must always remember to act upon it. Knowing that CoffeeScript is hot in the web dev scene is great, but in the end it amounts to little more than industry gossip.
True understanding comes from actually trying to do it yourself, technologies stop being buzzwords and they become tools.
That said, kudos to the OP for trying to Learn Python the Hard Way!
Totally. Figuring out what to spend time on is definitely one of the hardest parts since there's so much out there. But reading and hacking on 4 chapters of the django book in a day taught me more than reading for a year.
Your app mentioned in the blog post is throwing me an error.
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 700, in __call__
handler.get(*groups)
File "/base/data/home/apps/twordsie/1.347280040146141318/main.py", line 55, in get
'rows': [{'c': [{'v': tweet["text"]}]} for tweet in tweets]}
TypeError: string indices must be integers
You should install error handlers for server error(500), page not found(404), forbidden(403), and any others relevant for your app.
Regardless, 500 is the one you should generally install a handler for. It exposes details and flaws in your application which can be used in attacks.
Isn't that always the funny part of life? Whenever I have hack parties with my friends, I always end up learning everything at like 2:00 AM when we finally start in earnest. ;)
Two years ago, when I started reading HN, I was a php programmer who didn't even know what functional programming was.
Now most of my personal projects are written in my new favorite language, Erlang. Sponge learning is awesome, specially when you supplement it with lots of hard work. Thanks HN.
I have been the victim of sponge learning for many years now, HN being part of it for about a year. I can talk about a wide range of techy subjects but I've never really made or done anything to show for it. I learn bits from here and there without never going very deep. I've read through (and done most of the exercises from) K&R and Dive Into Python to name a couple, yet I haven't written a project over 500 LOC.
I've loved technology as long as I can remember, but when it comes to my local circles I've always been alone with it. Sponge learning is great and (as the writer mentioned) it deduces the amount of unknown unknowns, but without peer encouragement or -at least- approval it's very difficult to actually do something with it.
My sincere respect for everyone who has done something with their passions (that includes you alexmr!)
Wow, that struck a chord. Pretty much every sentence rings true, especially the peer encouragement one. For me it's the availability of easier entertainment - why write that python bookmark creation date histogram plotter, when I'm tired and can just waste the evening reading Reddit? Oh, and there's the procrastination habit I've been nursing for over a decade.
On the other hand, having someone as a sounding board to bounce ideas off, and additionally to guard me from going off tangents and getting distracted - that helps make some progress.
Have you scouted around for a local hackerspace (http://hackerspaces.org/wiki/List_of_Hacker_Spaces)? I did, but I'm using the language barrier (expat) and some leftover social anxiety as excuses to not pursue that road.
All else aside, would you be interested in starting a sort of a study group - just a place one can post their ideas and have others provide brainstorming, feedback and motivation?
I think that may work - I remember my most productive streaks were when a friend had an issue to solve and I would swoop in on the opportunity to help. When faced with a similar issue of my own, I would endlessly procrastinate and often fail. If others have also experienced similar situations, creating such a space to facilitate pair programming could increase everyone's productivity.
There's also hack nights in meetup.com and other sites where you basically announce your project/problem/ or just a snippet you need to write and find a pair.
Check out resources like scala-user, which is designated newbie-friendly, railsbridge.org and codereview.stackexchange.com.
I like Alex's concept of "sponge learning" and reducing "unknown unknowns". I've actually been doing this unconsciously for quite a while.
Let's say there is a debate about the best VPS provider on the HN front page. I have no need for a VPS right now, and I sadly don't have the time to read the whole debate.
Instead, I skim the discussion, bookmark it (on pinboard) with appropriate tags, and know it will be there when I do need to choose a web host.
This also applies to "unknown unknowns": a month ago, I saw the discussion on CloudFare ( http://news.ycombinator.com/item?id=2631019 ). I made a mental note that some services might actually help mitigate DDOS attacks, and made a bookmark for later use.
I could make an analogy with a database: I don't have enough time / memory to learn and remember everything I read on HN. Instead, I use my brain like an "index", the database being my Pinboard bookmarks. I think it's time to expand to other databases, too: I should try out EverNote or Workflowy to store free-form thoughts and other "non-bookmarkable" stuff.
Yesterday, there was this woman in a coffee shop (probably a PhD student) who had the smallest densest handwriting i've ever seen, doing this for a Physical Chemistry text. There must have been 3,000 words on each 8x11 page.
What I noticed in these 847 days I've been here is that HN's comments spoiled me. I now seek the same level of discussion on other sites and most of the time find myself disappointed.
I did the exact thing with Slashdot, when I first got on the Internet in '98. And I'd read Linux Journal although much of that was over my head as well.
But slowly you learn, and get to know the stuff, and then it gets boring and so you check out something else you know little about. That's what happens to me.
Yeah Slashdot started it for me too (well IRC, but website-wise the first was Slashdot). I'm a high school drop-out (now 31) who somehow managed to make a comfortable career off web development and IT project management thanks almost entirely to "sponge learning" off IRC, Slashdot, HN (more recently) and the Internet in general.
I've never done any formal training, I just wholeheartedly believe in immersing yourself in what you want to learn, and specifically immerse yourself at a deeper level than you're comfortable with to force yourself to work harder.
I can quite literally say my entire adult education from Year 10 onwards came from the Internet, and I owe my career, house, vehicles, all of it to sites like HN :)
Hey, this is good. And it inspired the guy to go deeper into some of the subjects!
Sometimes, a problem is that people only go to sponge learning...and then stop. As a professor of my friend's said...people are getting better and better at being able to talk about something for five minutes...then that's it. Thanks to wikipedia, lots of people can seem smart, but not actually understand something in depth.
I find XKCD also to blame for part of this. If I had a dollar for every time someone made a joke about the Axiom of Choice...
Frankly, I probably have to watch out myself to not fall into this trap. I'm not a CS major either and yes, its true I can probably bullshit for 5 minutes on many topics that I read about here or learned from friends.
I feel like this is a problem too. You actually got me thinking about this, and since I don't think I do this, how I avoid it.
I don't think I do anymore. I mean, I do less than other people, but I don't go deeper like I used to.
I think the solution, is books. I'm normally a little disdainful of those who have bookcases of technical (read: computer/programming) books, I can get the same or better info on the Internet (certain books excluded, but these books don't take entire bookcases).
But this is because I've progressed far enough in my understanding of this field that I wouldn't benefit particularly much from these books. Which, I think is why my learning in other areas has slowed, I no longer go to the bookstore. That means I don't by chance pick up a book on extra-dimensional physics. Because I don't need a book to help me pick up CodeIgniter or Python. This, of course, implies a tendency I have, to not go shopping, I only go into a store if I know what I'm going to buy.
I think that it is hugely beneficial to just walk through a bookstore, and just pick up a book on a subject that is interesting to you, that you _don't_ know a lot about.
Usually books are interesting and useful. CS seems to be a different thing, as most things are available online for free, and there is a large community. Bookstores are still fun to go to (although I feel like they may be a dying breed).
It always helps to work on exercises (for stuff like math), but for CS, to pick something interesting you want to do in a language(s), but is small - and that can be a hard part. It's getting harder for me to figure out what to use a language for - picking up a language's syntax and nuances is relatively easy (okay, excluding Haskell), but it's worthless unless you have something you want to work on.
I think Rich Hickey's Clojure bookshelf is a testament to the fact that much of the really deep stuff is still in books. Sadly many of these books aren't even on the shelves of a brick & mortar bookstore.
I agree to an extent - there is a lot of stuff that I know just enough about to be able to say "I know of it", but there are only so many hours in the day.
When it comes to starting a project all the stuff that I know of comes in useful, because I can fairly quickly determine which particular tools will be most useful in that circumstance and then start learning about them in more depth.
I have often thought about the way I learn, and it's very much 'sponge learning' (nice term BTW).
I am on a journey to learn Clojure, and improve my JavaScript skills. Much like the author, I read blog-posts, books, the Google groups as well as take any code samples found there and play with them in the REPL. A lot of the posts (especially some on the Google Groups) don't always make sense to me - but I hope that I will have filed it away somewhere. Maybe someday it will all come together :)
The most upvoted comment on the post (Martin Doms):
Everyone on hacker news is motivated by money. It gets old. There's a huge vibe of "I don't care about this technical mumbo jumbo any more than I have to to make a quick buck". It's VERY trendy/hipster culture there. They jump on all of the silly buzzword bandwagons and distrust tried and true technologies.
I'm not saying I don't read the site - some of the articles are very good. But I don't like to be around people primarily motivated by money. Those kinds of people make me very uncomfortable.
I saw that and disagree with him. A lot of people involved in [tech] startups are interested in money. However most, including myself, simply have a passion for building or contributing to something new. It's about learning, exploring and discovering. It is apparent that this guy needed to spend a little more time browsing HN before making this comment.
I'm right there with you. I have been an avid reader of HN for going on 2 years now. While I can't sit down and develop killer software from scratch, I am slowly learning more and more about technology and programming, and a lot of it is thanks to the great HN community.
I just started ready the updated edition of Learn Python The Hard way, and really enjoy it. It's the first book on programming that I have read that throws you right into the thick of things, get's you started writing code from the outset. Feel free to send me a message or email me if you want to bounce and ideas off of each other with Python or anything else, I get the impression we are both starting off on the same page. Should be a fun adventure!
"Feel free to send me a message or email me if you want to bounce and ideas off of each other with Python or anything else, I get the impression we are both starting off on the same page"
Yeah, absolutely. I'm always open to chatting with HN people. I would absolutely like to get in on a study group situtation for LPTHW like suggest below.
Would you guys be interested in setting up a "study group", sort of a Procrastinators Anonymous for wanna-be developers?
I can't begin to count the books I've skimmed over and not completed a single exercise. LPTHW was really nice in the way it gave you nothing else to do but exercises. Perhaps something as simple as a small, tight-knit forum (plenty of free forum providers) & IRC channel (something like freenode #python-studygrp) can be useful to bust the barrier of "I'll just start on that exercise/project/book when I'm a bit less tired." Somebody shoots an idea of something they've been meaning to do and others can jump in with brainstorming, ideas, pair programming and general "let's just do it" attitude.
Hell, I know I've been meaning to write a python script to draw a daily histogram of the creation times of Opera bookmarks, but I never got around to it. If I had a twin, I'd prod myself to hunker down and just write those <1KLoC.
So if anyone's interested in the group thing, just drop me a line so I can set it up tonight (CEST timezone here).
If you guys figure something out for a study group or IRC chat, email me! I would love to have some people going through LPTHW with me to keep each other at it. Like a lot of people, I always find myself starting the learning process with enthusiasm, but then dropping the hat when other projects come up. Really need the support to help make programming a priority.
Best thing about HN that it filters out crap and produces quality stuff. Just because of HN I came across two entrepreneurs who are more than helpful to guide me offline whenever I need.
Thanks PG and Team to give such a quality site. Now I don't visit TechCrunch etc to find out Information. HN does it for me and saves my time
P.S: I am already a techie but a Biz noob and HN is helping me to become an entrepreneur.
That's a very subjective view. A year ago, Hacker News really was HACKER News. Today it's not. It's Startup News, and Popular Blogstar Gives His Lofty Opinion On Something News. I'm glad that it benefits and entertains someone, but I'm also a bit sad that it stopped doing the same for me and everyone else who used to visit this site for HACKER News.
This is exactly the kind of mentality that one should develop on HN (or if they want to get anywhere in the industry). It reminds me of a recent post I read that people aren't intrinsically separated into "technical" and "non-technical" people. If you have the patience and the will, you can become competent at either. :) Read/learn on!
I did this with Reddit years ago when much of the front page was programming/computer-related. I realized it was an awesome subject, spent a lot of time trying to figure out what they were talking about, and eventually changed my major to software engineering.
I hope this site wont become reddit ;-)
The issue is that the communities are open and when it reaches a critical point, it all becomes like reddit/slashdot/whatnot as it will follow the majority of people's interest.
So let's hope, this site doesn't grow too much ;-)
The same thing happened with Digg, it used to be tech based. Then it got popular, then they screwed it up, and now no one uses it. I think hacker news can avoid this by keeping their minimal UI and not adding shiny bits.
I was referred to HN by a former colleague only 4 months ago. I'm the farthest from being a programmer of any sort, but I work in and around technology and he knew I was somewhat of a 'knowledge whore' aka philosopher. I like being in the know. "Sponge learning" is a great practice. I walk away from the monitor each day knowing what I don't know.
Awesome post. I am in the exact same boat as you. I read this stuff every day as inspiration and to learn more about the world of programming and computers. I am also working through python to learn my first language (chose python because of xkcd). Feel free to email me if you want to discuss difficulties or challenges with programming in python or in general.
You can certainly get part of the big picture from reading Hacker News, but if you're going to learn anything in depth, I seriously suggest taking a class. That way someone else has already done all the hard work in collecting all the material in easily digestable chunks and even gives his or her valuable time in trying to make you understand it all.
And even when you understand a lot about these technologies -- it can be a great reminder of things to dabble in and see if they fit your model of how you work. This week I jumped into using Less (a CSS tech like Sass) after noticing a post on it.
How happy I am -- Less (or a similar tech) is now going to be a permanent fixture in my webdev world!
Besides the technical stuff, the links and discussions here on HN have helped me with entrepreneurial concepts the most. It helps when really established and well known people, and people who have plentiful experience in starting, running, and marketing a business are discussing things.
this is almost exatcly how I learn. It is certainly the reason why I read hn, and associate with people who are generally much more experienced than I am (they're great friends of primarily).
I am still very much learning about programming in general, but the beat advice I ever got was this: just write programs any way you can, and learn what you did 'wrong'. there are always different ways to solve problems but the best way to get better is through practice.
its cool to see someone else (and by the comments, many others) doing the same thing I do.
I think it's great. I wish more people were as eager to learn new things as the OP.
I do think it comes at a cost to the rest of the community, though, when so many people participating in a technical community don't really understand much of the discussion.
No, he's got a point. New members tend to just be going through stuff that older members figured out long ago. This causes reposts or beginner material to be posted and talked about more often, leaving the more experienced members unsatisfied. Eventually, the experienced members leave for greener pastures and bring a lot of knowledge with them. Worse, this accelerates the spiral and degrades the quality of the site further.
Hacker News helps mitigate this through the continual involvement of PG and YC. Because there are a group of experienced technical people who are grounded to the site, it helps keep quality up. While I have noticed a slight decline in the site, it's far less than I noticed with Digg, Slashdot, or Reddit.
From what you two are saying a person like myself, who is just starting out and therefore not writing much in the way of code or blogposts, should not be reading HN because I can't join the discussion with anything but questions?
What about likeminded people discussing a topic that interests them? Is there no room for that?
Of course, some elite will outgrow any community save for the few right, private channels in IRC (as with reading the newspaper, anyone will frown at the oft-jornalistic reporting of whatever they know too well). Conversely, some newcomers should really be lurking more, or at least asking around at StackExchange before asserting anything here.
But since the point of HN seems to be "sponge learning" at large (of course, different levels of sponge learning), I don't see any sane way of moderating what should be worthy of HN from what should be asked or posted elsewhere, so long as it has the feel and common interests of the community, and "gratifies one's intellectual curiosity."
It's not the reading or even the submitting and commenting that worries me. Reading affects no one but the reader, and HN has pretty effective self-regulatory mechanisms for maintaining the quality of submissions and comments.
What worries me is the voting, which is anonymous and hard to self-regulate. Take a recent, heavily-technical article that made the front-page: http://news.ycombinator.com/item?id=2730286 How qualified is someone (who just learned that something like Coffeescript is even possible) to judge the technical content of a blog post about how GCC shuffles references between the stack and registers, or the discussion around said blog post?
I would class myself as an advanced user, not a developer but someone with interest and enthusiasm for technology. The main reason that I visit HN is that for me, the level of debate is higher. Far less fanboyism and trolling than most tech sites and IMHO - up there with slashdot. That's high praise for me \. is my favourite site
I've been reading HN for over a year even though I'm not the best developer. It simply teaches useful info about how to get things done that I would not get otherwise.
For instance, the case studies on starting a T-shirt company Snowpocalypse 2011 - bam! Knowledge of how to do that. Or the posts on business models in the music industry, links to Mixergy, et cetra, et cetra.
HN basically is extremely entertaining - and the most valuable business site I read.
It wouldn't be unreasonable to say that programming IS taking a trend towards mostly web development. Of course there will always be non-webdev programming, but it certainly is becoming more ubiquitous.
True understanding comes from actually trying to do it yourself, technologies stop being buzzwords and they become tools.
That said, kudos to the OP for trying to Learn Python the Hard Way!