9 ms·
Poll: How do you learn new technologies?
Would like to understand what are the best practices employed by this community to learn/keep up with new technologies.
Feel free to leave comments if you dont see a option or would like to elaborate on your response.
- ekpyrotic 13y agoAdditional option: build some thine.
- pedalpete 13y agoBuilding is key, but the way I learn while I'm building is to go through blog posts, tutorials and videos. Always free ones though.
- sim0n 13y agoI usually take a look at any docs/example code and then start hacking straight away. Not the most academic way of learning but I personally have the most fun learning this way.
- gyepi 13y agoMost of my learning is from "print". I always start with the available documentation, coupled with code reading to help me understand certain aspects better. Once I have a good feel for the language, I buy books to help me understand the nuances I may have missed initially. I usually end up buying books on languages and systems I expect to use a lot. I used oreilly's safari for years, but eventually stopped because I discovered that its available changed my learning style: I browsed more and read less deeply that usual. No videos but I do use blogs occasionally.
- Terpaholic 13y agoI use Stack Overflow first, searching for "Stack Overflow learn ____" and seeing what they recommend. I believe the best way is to BUILD something, so in the past lynda.com has been useful to get code into the IDE because you can write it with video, tweak and experiment (where the real learning occurs), and then go back to the lessons.
- brown 13y agoProject Euler (http://projecteuler.net/ http://projecteuler.net/) is great for this kind of thing. The problems start simple, which is perfect for the "learn the syntax" / "learn the tools" phase. Then the problems get harder, which is perfect for the "learn the advanced features" / "learn about the community" phase.
- eccp 13y agoExactly this! ... I started learning Clojure but I was too green to build something complex, so my problem was "Where do I get problems to solve with it?" and somehow I stumbled with Project Euler, where many others implement solutions in other esoteric languages as well.
- olalonde 13y agoI wrote a blog post on my process here: http://syskall.com/tips-for-learning-new-technologies/ http://syskall.com/tips-for-learning-new-technologies/
- JakeSc 13y agoFor me, it's orders of magnitude more efficient to try out a new technology than to read a book. For example, I recently took on a more advanced Arduino project. Knowing very little about electrical engineering, I've been making slow tangible progress, but immense intellectual progress. I usually end up seeking out reference material to supplement my experimentation, but by far most of my learning comes from actually "building something using the technology".
- staunch 13y agoRead. Build. Repeat.
- songzme 13y agoI have been doing bi-weekly talks about new technologies that I have never used before for my meetup group in San Francisco: http://www.meetup.com/apidiscovery/ http://www.meetup.com/apidiscovery/ The way I've been learning, is to do a quick getting started to get the gist of the new technology, and then read through the documentation. What I have realized is that by reading the documentation, you get to really understand that technology you want to learn. Good Luck!
- zaphar 13y agoAlways build something. Nothing teaches you about a technologies limitations and benefits like building something with it. I don't think you really know a technology until you've build something with it.
- quietthrow 13y agoAgreed for the most part, but might not work in all cases. For eg. Learning to use vim ....
- vishal0123 13y agoYes for some cases building something will not work,but not on this. You should make things like plugins, edit configuration files to learn the full use of vim.
- readme 13y agoWell, I learned vim by building something (using vim). I just sucked it up and ran vim, then ran head first through the brick walls... That was years ago, and I'll never regret it.
- Syngenetivc 13y agoLots of RedBull
- quietthrow 13y agoShould have added caffeine as a option :)
- yareally 13y agoIf it's something similar to what I already use (like say trading one web framework for another), then I just look at the official documentation/examples and some decent guides. After that, I start building something with the new tech. If it's something like a new language or database, then I might be more interested in getting a book on the subject (if there exist any decent ones). I'll usually skim through the book looking for areas that differ significantly from previous languages/databases and focus on reading about those parts. Following that, build something with the language/database. Reading stuff only online if it's not official docs, can really burn you though (not that books can be any better at times, but books at least get reviews). Most of us probably already know that, but the quality of content of many blog posts and tutorials can be sub par (especially for things like PHP and Android). The faster a piece of technology changes and the way one uses it, the higher the variance it seems in quality of online content (just looking at bad practices in PHP from version 5.2 and before to 5.5 and also Android 2.x and before to 4.x). Pretty much though, it all comes down to building. Reading can get you past some of the basics, but applying what you learn reinforces. Also, it doesn't hurt to eventually teach/discuss what you're learning with someone else, as it helps to also reinforce what you already know and question what you are unsure about (either actively or in retrospect).
- isaacb 13y agoYou really need an option for "Reading the documentation" which is pretty different from reading blogs and watching youtube videos.
- seivan 13y agoFirst, I read everything I can read. I don't even try, I just read. Then I try and read at the same time. Then I stop reading, and just trying.... and trying.. and mess up, and keep trying again. You never really stop trying
- christiangenco 13y ago1. Hear about cool new technology for the 3rd time, this time seeing a clear application for how it could be used 2. Get really excited and go to technology's homepage.io 3. Get 40% through homepage.io's tutorial before I get frustrated and confused 4. Shelve new technology away in my brain as a list of potential things I could build something with 5. Months later, get a really Cool Idea for something I could build with new technology and become overwhelmed with a need to build it 6. Fight my way back through homepage.io's tutorial, "getting it" much more this time, and augmenting the tutorial to start building Cool Thing. 7. Fight through errors striving for how I think the technology should work by hundreds of googles and stack overflows 8. Create minimally viable Cool Thing, get really excited. Friends don't understand what was so hard and why I'm excited, as I could have built the same thing in X technology I already knew, but they think Cool Thing is pretty neat 9. Start fixing bugs on Cool Thing and realize I don't understand how the internals are actually working, so go back to documentation/notable book resource/new technology videos and devour them because I have the clear purpose of refining Cool Thing. 10. Cycle through several iterations of Cool Thing and realize I know New Technology pretty well now 11. Hear about cooler newer technology, and read that I could accomplish in one line what it took me 100 to do in cool new technology... 12. goto 1
- pelanne 13y agoHah! Scarily accurate.
- Mikeb85 13y agoHaha +1 to this... Familiar path, this is how I learned Clojure.
- pranavrc 13y agoExactly this. That "I need to get this done" urge drives me to go through the tutorial/book that I previously did not complete due to lack of direction/need.
- ratsimihah 13y agoDas my life, too.
- 13y ago
- D9u 13y agoAll of the above, with the exception of "Subscribe to a paid service..." and "Buy a video..." When possible I seek out free information rather than buy it.
- tptacek 13y agoThere's a lesson here for people whose aspirations include writing technical books.
- mechanical_fish 13y agoIs the lesson "HN polls are unscientific, biased samplings of groups of people that might or might not contain any members of the audience for your technical book?" ;) It doesn't help that this is a generic poll about generic books. Of course imaginary books poll worse than imaginary websites: They're more expensive (because imaginary books have an imaginary label saying "$9.99", and imaginary websites are free and subsist purely on popular goodwill and flamewar-powered Carnot engines) and neither of them has any real content so it's impossible to evaluate the amount of imaginary value one is getting for one's imaginary money. Whereas in the real world people judge their materials in the context of specific authors, subjects, goals, and budgets. People compare (e.g.) a copy of established-Github-wizard Scott Chacon's Pro Git (a try-before-you-buy CC-licensed free book) to the thrill of trying to learn Git's canonical workflow by reading its man pages and browsing flamewars about rebase v. merge. Or a ten-minute Railscast Pro about Devise, paid for by your boss, to the option of having to admit to that selfsame boss that your project's hand-rolled authorization code got hacked.
- brandonhsiao 13y agoI think "build something" would be better reworded as "do something;" that is, use the technology. Studying theory before diving in may work for other fields but if, say, you're trying to learn Django, you learn more from making a web app with it than you do from reading or watching several tutorials or guides. If you want to use vim, just write your next program with it, and consult the help every time you notice an inefficiency in your work flow. I think this approach works with hacking because there are so many little perks you have to know about and finishing a project is one of the best ways to expose yourself to many of them.
- ripberge 13y agoSo 123 of you (at this moment) just "build something" without reading anything? Like you just open a text editor and the code flows out of your fingertips due to your vast computer science knowledge? Typical HN b.s.
- gamegoblin 13y agoI think by "build something" that involves looking up precise stuff as one goes along. I learned Go without looking at any tutorials. I just started coding and googled for things like "array declaration in Golang" as I needed it. My first Go program was a dynamic image resizer that used seam carving to intelligently scale images. I had never used Go before, nor implemented that particular algorithm before. So by "build something", that is to say I didn't go through a book first, or a tutorial first, or a video first.
- tomku 13y agoFor me, it's a mixture of books/e-books, screencasts, self-directed projects and free web resources. Paid versus free doesn't really matter much to me - whether it's a $20 book or free series of blog posts, the time investment tends to dominate the money investment. I'm more worried about wasting time on poor resources than saving a couple bucks, and books have treated me very well in that regard.
- wnevets 13y agoBuild something using the technology Use free material available on the net - youtube, blogs, journal articles.
- tel 13y agoRead the papers.
- agentultra 13y agoFirst thing I do when I have a problem is see if someone else has solved it for me. I have limited brain space and learning something really well often forgoes learning new things unless they are evidently superior. That being said, I don't often spend time learning new technologies. Instead I invest in learning fundamentals.
- ggreer 13y agoMy time is limited, so I prefer to learn from the mistakes of others. Before I build something using a new technology/framework/language/whatever, I look at popular open source projects that use it. Not only is it useful to pick up idioms, but browsing through the project's closed issues is a great way to find and avoid common pitfalls of the new technology.
- gijoeyguerra 13y agoPick real world problem. Build solution with new tech.
- Achshar 13y agoBuilding something or some prototype is the best way for me to learn some new tech. Just reading about it never works for me. The idea is to first find problems and then look for solution on internet in tutorials, documentation stackoverflow etc.
- phektus 13y agoI do this with web technologies but may be applicable to other areas as well: 1. Read tutorials if available, then books in that order. Not to be exhaustive but just to get more stuff into my head. 2. Do a small project that uses it. 3. Repeat from step 1 but with more info to digest and a slightly bigger project to work with. After some 4-5 iterations I would have a nice grip on the technology and a handful of small projects to show with.
- vinceguidry 13y agoI find someone to pay me to build something using it. It's how I learned jQuery, Sinatra, Bootstrap. Bout to do the same with Angular and Rails. I wish I could learn a tech from a book, but the signal-to-noise ratio is generally too low in the vast majority of books I see. I don't need a bunch of "recipes" or a disgustingly short bash rundown in a book on Ubuntu, I need clear, server-oriented insight into how the OS internals work, and what went into the underlying design decisions. Every book on a programming language I pick up spends 90% of the time on basic stuff you could pick up in a few hours with the same language's "getting started" page. I'd love a teardown of the source code with commentary on the intentions of the language designer. I don't want a gentle introduction, that's just a waste of my time. I've already introduced myself with a dozen or so hours of playing around and reading docs. But the people that could write useful things about technologies generally aren't. Or maybe I'm just not looking hard enough.
- billpaetzke 13y ago> I find someone to pay me to build something using it. Sounds good to me. Where do you look for this person? And how do you sell yourself developing in a tech in which you have no experience?
- vinceguidry 13y agoCurrent employers, freelance clients. I don't sell myself on the basis of what frameworks I know, I sell myself based on my accomplishments. When I do get a project, I'll always work in something I want to learn. Selling on my accomplishments tends to give me the leeway to make these kinds of choices on the stack being used.
- stopro 13y agodoit doit
- cema 13y agoI am surprised to see the "work with a mentor" option having such a low score. Don't you guys learn from each other?
- dagw 13y agoSpeaking only for myself, I'd love nothing more than to work with a mentor, but I have no idea where to find one with both the time to dedicate and the relevant skills. Nor am I sure how I would fit it into my work schedule.
- cema 13y agoPerhaps "mentor" does not paint quite the right picture, but working with smart people (and solid professionals) rubs off, and that, in my experience, has been very useful.
- danielweber 13y agoI think it's the best answer, but it's also the hardest to accomplish. So many times I'm like "WTF is this tool? Why would I want it?"