7 ms·
Ask HN: What do you think is the next Technology worth mastering ?
I have friends who got very deep into iPhone dev a few years back.
Now, they are considered masters of their craft, have managed to build a good name and connections for themselves. (And monetize on it).
Now that I have lots of spare time, I decided to delve into something (very)new.
In the hope that two/thee years down the road, I too, can position myself in the same way in a new field.
So what do you think is most worth learning ?
- coderdude 17y agoA couple things off the top of my head: -Web apps geared towards the emerging thin-OS netbook market -I think Android apps will kick off in a much bigger way this year with more people getting their hands on phones supporting the OS. It's still early enough to get into IMO. -On this page Veera suggested the Semantic Web, and while I have big hopes for the Semantic Web (I should, I blog[ged] about it), it's just not going to mature into what I think you're looking for in the amount of time you're looking for. -Tichy suggested Data Mining, which I'm getting very into as of late, so maybe I'm not in the best position to give an impartial opinion but I think that will be taking off more. :) Edit: fixed linebreaks
- raju 17y agoSo what would you recommend be the first step in learning about Data mining? Any resources/books you can suggest? [I figured since you just got into it ... ]
- coderdude 17y agoI may have mislead you. I occasionally refer to information extraction (through nlp) as data mining. It's a bad habit, but data mining just sounds cooler.
- vlod 17y ago"Programming Collective Intelligence: Building Smart Web 2.0 Applications" is worth checking out in Borders to get a sense if it's gobbledegook amazon link: http://bit.ly/5JlRz7 http://bit.ly/5JlRz7
- nerme 17y agoLearn some linear algebra. Literally every how'd-they-do-that-technique from OCR to PageRank is based on putting data in to a matrix and extracting some eigenvectors. I took LA in college, but my professor was no where near as good and on topic in relation to computer algorithms as this guy: http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/Cours... Oh, check out R. There are a lot of free papers and example code showing say, how principal component analysis on a dataset of migratory geese can be used to explain so and so, along with generating some pretty pictures. It's a really nice bit of OSS!
- maxklein 17y agoThere is no evidence at all that an alternative OS is going to hit off in any significant way. Netbooks are popular cos they run Windows XP. I expect it to stay that way. Android is a gamble. Data Mining will make a lot of money for the person who can explain his data mining app in one sentence without ever using the words data or mining.
- sriramk 17y agoData. R/Hadoop/Hive/Pig/Dryad, SQL Server streaming, Excel PowerPivot and the works.
- Tichy 17y agoData Mining
- blender 17y ago+1 It may not be sexy or glamorous but it will be in high demand.
- bioweek 17y agoAny justifications for that? You could have said the same thing 10 or 20 years ago, but it still hasn't come into great demand.
- kordless 17y agoWebapps. The rise of the webapps will herald a new era for analytics and reporting. There's gold in them thar logs!
- lsb 17y agoYes, I'm starting to work for an online company that's sitting on 20 TB of clickstream data that no one's gotten around to even looking at.
- simonw 17y ago10 or 20 years ago there wasn't nearly as much readily available data to be mined. Today even moderately high traffic sites generate GBs of log files a day, not to mention the enormous quantity of high value data available through various APIs.
- aaronblohowiak 17y agoyou don't actually need all of the traffic to make meaningful conclusions. Tracking a statistically sound random sampling of user sessions provides most of the benefit for pattern analysis uses.
- 17y ago
- Veera 17y agoSemantic web
- maxklein 17y ago2002 called, they want your comment back. No seriously, semantic web has been talked about for a long time. People don't understand it, don't care and don't see how it will make them money.
- coderdude 17y agoBe that as it may, the Semantic Web community and the data it requires in order to exist are still growing, much faster than when I started blogging about it in January 07. People are starting to care but the "adoption rate" is so low because, as you said, people don't understand it. I still struggle with the subject. Not the underlying concepts, but the picture as a whole. From an "insider's perspective" I can say with confidence that what we hope the Semantic Web will bring us is going to come about. I just personally no longer believe in "well, here is the old Web, and then here's the day we switch on the Semantic Web. See the difference?"
- nzmsv 17y agoGoogle is starting to look at microformat data. All that needs to happen in order for more semantic tech to take off is the search engines paying attention. As soon as a technology translates into an edge on the web, it'll get implemented. This fixes the monetary motivation problem, and forces people to solve the other two :)
- mark_l_watson 17y agoA subset of the SW, Linked Data, seems to be gathering some momentum. I still think that we are going to hit an inflection point where there is enough linked data to enable great apps, which will drive more people to publish linked data. In this case, the uptake could accelerate rapidly. OTOH, you might be right. I like RDF+RDFS but OWL, while interesting, seems very heavy weight to me.
- keefe 17y ago
- gtani 17y agoconcurrency models: erlang, scala, clojure, Haskell Parallel execution, map/reduce, hadoop, noSQL datastores;
- simon_ 17y agoAgree. In a few years, we'll all have N cores on our desktops.
- lucifer 17y agoThis is something I've been looking into and I'm becoming convinced that given the wide range of (expert level competency in) domains required (memory models, processor architectures, concurrent data structures) to effectively address the issues, it is likely that after a short period of language/software layer solutions, the issues will be addressed at the hardware level. Its an intrinsically hard problem that I doubt can ever be made practical for the general (IT level) programmer community.
- patio11 17y agoI think the general (IT level) programmer community doesn't require more processing power to do their jobs than they would have had on a single core desktop in 1999, anyhow.
- dnewcome 17y agoIt may be true that programmers don't strictly require the power, but interesting things become possible when you can afford to waste a lot of power. This should be evident by looking at Rails etc. In another 10 years who knows what will be possible by wasting another 100x processing power?
- tptacek 17y agoI don't think you could have comfortably done Rails dev on the typical 1999 workstation.
- 17y ago
- skip 17y agoCoding for GPGPU or stream processors
- profquail 17y agoI upvoted you, but I am a bit biased ;) Seriously though, if anyone is interested in learning about this, the best place to start is definitely the nVidia GPU Computing forums: http://forums.nvidia.com/index.php?showforum=62 http://forums.nvidia.com/index.php?showforum=62
- flatline 17y agoHeck yeah! Thousands of cores, each running hundreds or thousands of threads. I was just checking out NVidia's Tesla cards the other day, three of those and you have a full-blown desktop supercomputer priced under $5k. The challenge is going to be thinking up interesting/useful stuff to write for it.
- andrewcooke 17y agoi'm doing this now, and it's a heap of fun (if you like fiddly coding challenges :o). but it's hard to see how this or the next generation will be the next big thing. it's still necessary to have a "suitable" problem, and the next generation (nvidia's fermi), while improving things enormously, is still very much not a general purpose chip (i was just looking and the cache for a multiprocessor is going to be 64kB - compare that to the 6MB on my core 2 quad...)
- ramchip 17y agoThe cache may be small, but unless you're talking about something different - graphics memory is fast, and GPU clock speeds are moderate, so cache isn't as critical on a GPU as on a CPU.
- andrewcooke 17y agoThe trouble is that you have hundreds more processors. So even if the memory is twice as fast, and each processor twice as slow, memory access is still the dominating factor in efficiency. You can work round that by being vary careful, arranging things so that processors access memory in sequence, which lets reads be coallesced (you're streaming data from continguous addresses, avoiding the "seek time" of random access). But that only works if all the processors are focussed on the same job. Now you can say I'm just describing the standard problems with GPU, and I'd agree, but my point is that even in Fermi (which is a huge step forwards in many ways) these will still dominate. And it's hard to see how most software fits into such an approach. Hence my warning that they are not becoming general purpose.
- deleted 17y ago[deleted]
- adriand 17y agoThis is an interesting question and one I've been pondering lately as well, not from an individual perspective, but from a management perspective for a small team of developers at a web app/design shop. I obviously have to be more conservative than you because I have to consider short-term profit as well as risk. So in order to get responses that are along the lines of your question, I'd like to ask HN readers: what do you think is worth concentrating on in 2010 that would lead to good short- and long-term results for an agency specializing in website and web application development, often for relatively small projects? To answer your question, I think you need to do some thinking about what it is that you want to do. You have to start with something that interests you. Your friends chose something in the realm of mobile development: does that appeal to you? Perhaps they also focused on games: does game programming appeal to you? Someone below suggested "data mining" as a field to focus on. I can say for myself that although I am somewhat interested in this, I am not anywhere close to as interested as I'd need to be to devote several years to it. It also has to be something with a good chance of paying off, if you are interested in the money side of it. Your friends chose something that was backed by a huge corporation with a proven track record of creating successful devices, so although they ran some risk - the iPhone may not have been a massive hit like it was - they mitigated that risk by choosing something with very good chances. However, any choice that relies on predicting what will be successful in the technological realm in two to three years is bound to be risky, especially if it is "very new" (and thus unproven). Here's a shot at it: focus on mobile web application development utilizing HTML5 features. Google believes "the web has won", and I agree. If you get really good at building browser-based applications for mobile phones, I think you'll do well.
- aaronblohowiak 17y agoIf you aren't already doing it, try making your specs human and machine-readable, using a tool like Cucumber. This is a process-oriented improvement (not a technological one.) The $ benefits come from decreased status-checking overhead and transparency in the functioning of the code base. Similarly, invest in testing technologies for the front-end. Many web-app shops only focus on testing the back-end, but as front-end logic becomes more complex, the advantages of testing become more fortuitous.
- 17y ago
- timwiseman 17y agoThe new technology that interests you. Seriously, several of the technologies emerging now are likely to be big (or at least grow substantially) over the next few years. But if you focus on the one you find most interesting it will help keep you focused and motivated which can be an enormous help. It will also help you enjoy what you are doing which simply makes the process more pleasant.
- yummyfajitas 17y agoAMQP/RabbitMQ. I explained in more detail why in this post: http://news.ycombinator.com/item?id=1006208 http://news.ycombinator.com/item?id=1006208
- deleted 17y ago[deleted]
- tyohn 17y agoMobile Devices - not just the iPhone but think "What would software/hardware be like if you could carry your desktop machine everywhere - inside your pocket"
- maxklein 17y agoMobile Devices is a good and safe bet. Particularly cross-platform stuff. Fragmentation is not going to occur, everyone knows what is at stake and nobody wants it to happen.
- ratsbane 17y ago+1 for Data mining, concurrency, FP. Another one: HTML 5 and related. This probably won't make as much of a splash as AJAX did a few years ago but some of the new things you will be able to do in a web browser present an opportunity to improve on older web apps: e.g. location and gravitation APIs, web sockets, multi-file uploads and drag-and-drop. Biggest problem with HTML 5: it's going to be years before complete market penetration - but FF, Chome, and Safari all have much tighter upgrade cycles than IE. For intranet stuff or anywhere you have a reasonably captive user base, why not offer better features to your users if they upgrade? Side benefit: it's much more fun to be coding for the future than for the past.
- nzmsv 17y agoAJAX originated as an obscure hack put in IE by a Microsoft employee. The only reason it made such a splash later is that other people tried it, found they could use it to do cool things, and then spread the word. HTML5 could make just as big a splash. Someone making local storage work seamlessly in a large webapp would be noteworthy, and take away the biggest problem with Chrome OS: can't work offline.
- aaronblohowiak 17y agos/someone/google
- maxklein 17y agoI think that the other commenters here are on to something with Data Mining, but they are not seeing it right. What is really needed is more than Data Mining but more of Data Abstraction. I.e, there is a LOT of different data out there. People have very different needs for it. We cannot know all the possible usecases for this data. This information has to be abstracted and simplified so that data mining apps become trivially easy for business types to write. That is a good area to be in. If you know enough about dealing with data such that you can be one of the ones building layers on top of the data, then there is a lot of opportunity there. 5 years is a reasonable estimation for this. Before then may be a bit tough. Another important thing to learn are Location Based Services. The problem is that the applications at the moment have not all been invented yet, and it's not clear when it will reall trickle down to the Ex-VB6 guys.
- aaronblohowiak 17y agoThe term "Data Abstraction" already has a different meaning. The "simplification" of data implies an understanding of the data, and that modification instills biases in the representation that may limit the fruitfulness of the data itself. Letting "business types" write data mining apps is already on the market and has been for a while. Look into "Business Intelligence" applications. The verdict is that a) making it easy to do BI actually makes it very complex and b) making analysis easy does not automatically expose or explain what analysis is salient.
- mcantelon 17y agoHardware hacking and DIY manufacturing/fabrication. Mainstream manufacturing has been offshored, but there are a lot of people working to build a DIY ecosystem that will eventually allow people to turn around low volume, niche products faster than offshore manufacturers.
- spiralhead 17y agoScala! ... specifically using Actors for concurrency problems has been a bit of a revelation for me ... and the functional parts if you're not already familiar with FP ... and for practical reasons ... Scala is one of the only academic-ish languages you can actually use in the real world
- JangoSteve 17y agoHow about the brain? How the Brain Encodes Memories at a Cellular Level http://www.sciencedaily.com/releases/2009/12/091223125125.htm http://www.sciencedaily.com/releases/2009/12/091223125125.ht... If you've ever read Mindkiller or Time Pressure by Spider Robinson, then you know where I'm going with this ;-)
- staunch 17y agoHow about iPhone development? Being early in a gold rush has its advantages, but there's also advantages to coming in later. Or Flash? I know it's not loved by very many, but expert Flash developers can demand a very good salary. They're also very well positioned to develop cool stuff on new web platforms.
- iron_ball 17y agoAnd, speaking as an Actionscript hacker, the language is very good to work with. It takes all the best aspects of Javascript, gives them some (largely optional) Java-like safety/structure features, and puts them in a much more sane API environment.
- aaronblohowiak 17y agoThe language is pretty cool, too bad the VM and compiler are terrible.
- blasdel 17y agoHa, I think the language is pretty mediocre (making JS superficially enterprisey is not a good idea), but the VM itself is pretty decent, especially on Windows. The real problem with the Flash implementation is in the native runtime, not the VM. It just struck me that Flash is a ripe candidate for a Smalltalk-style turtles-all-the-way-down runtime implementation!
- simonw 17y agoHTML 5. In two or three years time I'm willing to bet a large portion (if not a majority) of desktop applications on all platforms will be written using HTML 5 technologies - in particular offline storage and web workers. If you're an expert with CSS, JavaScript and the various HTML 5 APIs you'll be in a very good position.
- simonw 17y ago... and if I'm wrong, those skills will still be useful.
- aaronblohowiak 17y agoThe barrier to learning HTML 5 for the entrenched HTML/CSS/JS talent is too low and the migration path is too clear that being an "HTML5" expert will be notable enough to provide exclusive niche marketability.
- zen53 17y agostatistics/data mining/web analytics. Maybe iTablet development
- deleted 17y ago[deleted]
- spudlyo 17y agoConfiguration management ala Chef, Puppet. The old way of Sysadmins hand maintaining configuration files on individual UNIX machines simply won't cut it in the era of easily provisioned ephemeral cloud resources.
- aaronblohowiak 17y agoThis is already the reality on the ground, not 2 years out
- antirez 17y agoa) Every kind of concurrency stuff. CUDA, threading, Go/Erlang/... light threads, and so forth. b) Alternative databases. c) Real-world scalability.
- HeyLaughingBoy 17y agoSales.
- Murkin 17y agoI am surprised no one raised the issue of smart-devices. I mean the hundreds of planned smart, wireless, SOC devices that are prophesied to become deeply ingrained into our lives in the coming years. ZigBee/WBAN/RFID and the technology around them. This fields has myriads of required applications: - Firmware upgrades - Control & Monitoring - Inter communication tools - Security and more and more and more
- aaronblohowiak 17y agoOmap3 and Omap4
- nir 17y agoIMHO it's more about concepts than technologies - eg, MVC based Web frameworks were a good concept to pick up a few years ago, whether you chose Rails or Django or Zend Framework etc, OOP were a good idea to pick up somewhere in the 90s whether you ended up writing games in C++ or banking apps in Java. I think one of the next concepts to take off is asynchronous (or event based) programming. It's been around for a while, but only recently (with growing interest in concurrency) becoming mainstream for non-UI, dynamic language apps. Good intro here: http://simonwillison.net/2009/Nov/23/node/ http://simonwillison.net/2009/Nov/23/node/
- mark_l_watson 17y agoI just blogged on my predictions for the hot tech for 2010: wireless, analytics, modeling, data/text mining, micro business development with small very focused charge for use web apps, Linked Data, etc. The thing is, choose something that is fascinating for you, otherwise you probably don't have as much chance for success. I would suggest going with what most interests you.
- joeycfan 17y agoAndroid and Facebook Apps. Rails should still be hot.