TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: With such fast changes in technology, how do you update your skillset?

114 pointsby ak93over 8 years ago
AI/VR and slowly lot more. I am getting quite anxious if my skillset might go obsolete.

42 comments

pjc50over 8 years ago
To be honest, it isn&#x27;t and I don&#x27;t.<p>That sounds rather blunt, but most organisations <i>that aren&#x27;t startups</i> don&#x27;t change technology quickly if at all. C++ has served me well for two decades; I probably ought to adopt C++14 but on the other hand my current job requires that the codebase build with a 2008 compiler.<p>I&#x27;m also extremely skeptical of the extent to which AI and VR are <i>new</i>, as opposed to incremental improvements to technology which takes it over an adoption barrier. Have you seen the 80s VR headsets? SHRDLU? The &quot;AI winter&quot;?<p>If you&#x27;re worried about this stuff then it&#x27;s helpful to develop a level of knowledge about it that&#x27;s slightly higher than <i>Wired</i> but lower than actual implementation detail, in order to talk about it in interviews. You can then pick this stuff up as you go. Machine learning in particular is maths-heavy, matrix algebra in particular, and <i>that</i>&#x27;s never going to go obsolete.<p>I also agree with the commentators who are saying that you should ignore the latest flash-in-the-pan frameworks unless you really have to to get frontend gigs.
评论 #13416744 未加载
评论 #13416488 未加载
评论 #13416864 未加载
评论 #13417162 未加载
评论 #13416800 未加载
throwaway6845over 8 years ago
It may not be in the spirit of HN, but deliberately being 3 years behind on the latest technologies is a really good way to stay employable without driving yourself mad keeping up with the latest and greatest. After 3 years, the flash-in-the-pans and the duds have been winnowed out and you can just concentrate on the stuff which will earn you paying gigs.
评论 #13420080 未加载
DanielBMarkhamover 8 years ago
Learn patterns and pop up the abstraction level.<p>There are only a few patterns in programming: imperative, OO, functional, etc. Learn those.<p>There are only a few abstraction levels in problem solving: meta, business, system, physical. Learn those.<p>There are only a few types of patterns in ML and Big Data. Looks like it&#x27;s time to learn those.<p>But the principle is the same. Learn the patterns of various <i>forms</i> of solutions, not actual languages or tech (they&#x27;ll be required, of course, but they&#x27;re only a prop). Be able to move between these various patterns. Then deep dive from time to time on various projects in each area.<p>We&#x27;ve passed the point where a person could keep up long ago. Now it&#x27;s simply about being both broad and deep at the same time. T-shaped people. If you want to make a lot of money you can be that one guy who knows everything about some tiny point -- but you&#x27;d better hope that point doesn&#x27;t become obsolete in ten or twenty years. I&#x27;ve seen this happen far too often in tech.
评论 #13420922 未加载
评论 #13420864 未加载
twelve40over 8 years ago
Have to do side projects. In my past life, I was getting sucked into becoming a very conservative tech stack lifer at a huge, all-encompassing company. Most people that surrounded me, even the good, hard-working ones, were 9-5 and expressed surprise and hostility to learning anything outside of the company bubble. Then one day a new, more active guy joined our team and whipped up a complete REST-based service in a week. My mind=blown. I quit for the startups, and moved on to using dozens of different stacks since and never looked back. The best, most educating moments typically happened outside of work, when you combine the patterns and observations from work with a different stack or a smart outsider friend who chimes in on your daily struggles from a surprising different angle.<p>Another enlightening moment for me was when I was working on a hobby machine learning project, and shared my design concerns with a brilliant but very much non-ML coworker, and all of a sudden that coworker laid out the whole design in a pretty convincing detail, like he&#x27;s been doing this work for years. After the initial shock from his seemingly birth-given ML skills, I noticed that he simply takes a lot of good online classes and goes through all the top ML material on the web in his spare time, even though it was irrelevant to his tech focus at the time. Well guess what, two years later he got promoted and he&#x27;s making that sweet data science money, and guess where he would have been if he only focused on his old day-to-day instead.
xiaomaover 8 years ago
My current strategy has a bit of complexity and might take an entire blog post to explain clearly. The high level view is this:<p>Skills vary both in how much the market values them and in their durability. There&#x27;s often a trade-off between these two characteristics. For example, half a year&#x27;s worth of study in a foreign language or pure math is only somewhat valuable to the market but that value doesn&#x27;t tend to decrease over the years. Learning AngularJS in 2013, on the other hand, was so highly valued by the job market that it was a great way for junior programmers with no degree to break into a software engineering career.<p>I believe it&#x27;s best to generally focus most learning efforts on durable skills, but occasionally when there&#x27;s an opening, to flop and focus 100% on an ephemeral skill that&#x27;s highly valued and appears likely to be even more highly valued in the near future. After capitalizing on the opportunity, return to mostly focusing on durable skills.
itamarstover 8 years ago
A lot of the technology on the bleeding edge will be gone in a couple of years. AngularJS v1 used to be the next big thing, now it&#x27;s obsolete. Who knows if v2 will stick around.<p>So following the latest technology in <i>detail</i> is unnecessary. Far more useful is just having a broad sense of what tools are available out there; it takes less time, and it&#x27;s more useful since it gives you access to a broader set of tools on-demand.<p>Beyond technology, the things that persist are much more fundamental skills:<p>1. Ability to read a new code base, and ability to quickly learn a new technology.<p>If you can do this you don&#x27;t need to worry about new technologies since you can always learn them as needed. E.g I just wrote a patch for a Ruby project (Sinatra) at work even though I don&#x27;t really know Ruby and never saw the codebase before. It got accepted, too.<p>2. Ability to figure out what the <i>real</i> problem is, what the <i>real</i> business goal is. This makes you a really valuable employee.<p>Technology is just a tool. More fundamental skills are your real value.<p>More detailed write-up on how to keep up without giving up your life: <a href="https:&#x2F;&#x2F;codewithoutrules.com&#x2F;2017&#x2F;01&#x2F;11&#x2F;your-job-is-not-your-life&#x2F;" rel="nofollow">https:&#x2F;&#x2F;codewithoutrules.com&#x2F;2017&#x2F;01&#x2F;11&#x2F;your-job-is-not-your...</a>
评论 #13418962 未加载
Applejinxover 8 years ago
Depends. I&#x27;m shepherding <a href="http:&#x2F;&#x2F;www.airwindows.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.airwindows.com&#x2F;</a> through a switch to Patreon, by expressing new DSP ideas in a context of very, very old audio plugin frameworks. The dev tools I&#x27;m using won&#x27;t even work on current computers. I code on a time capsule laptop and depend on the very simplified plugin formats I&#x27;ve chosen (generic interface AU and VST) to remain functional. They&#x27;d have to break the most fundamental interfaces to kill my stuff (which doesn&#x27;t make it impossible to do, just very user-hostile)<p>Don&#x27;t confuse advances in technology with intentional churn generated by vendors and platforms. The latter is a plague, and it doesn&#x27;t only cost people money, it costs them productivity. You may be getting confused and mistaking skillset for toolset. Large companies will always be able to replace your toolset and demand you learn a whole new one, because the more you do, the more you&#x27;ll be locked in to their toolset. If you can abstract out the functions being implemented and express them in different ways, you can take your skillset different places.<p>Whether you do that, depends on how good you are at finding niche markets. As someone who&#x27;s stayed in business for ten years selling GUI-less audio plugins with no advertising and no DRM of any sort, I can tell you (1) niche markets exist and they&#x27;re loyal, and (2) they&#x27;re small, which is what makes them niche. :)
评论 #13416743 未加载
avipover 8 years ago
3 steps program (specially crafted for the aged)<p>===============<p>0. Assume any &quot;new&quot; thing is worse than the &quot;old&quot; alternative - until proven otherwise.<p>1. Critically filter out hype&#x2F;PR.<p>2. You&#x27;re left with much less to learn.<p>3. Invest &quot;out-of-work&quot; time in something really valuable.
评论 #13422735 未加载
sapeienover 8 years ago
It depends on what you already know, I think embedded development with systems level languages and hardware know-how is a very durable skill.<p>On the other hand, some fields like web development have peaked a while ago, I would argue that 2012 was the high watermark. I think it&#x27;s a very precarious choice of career right now. It has been steadily going downhill since the introduction of trendy front-end frameworks that don&#x27;t offer any value to the end user (including React, Angular, et al). The culture stopped being about making usable and accessible interfaces for people, and more about &quot;component architecture&quot;, &quot;server-side rendering&quot;, &quot;tree shaking&quot;, that solve problems created by the very tools they are using.<p>That isn&#x27;t to say that web development is dead, but I think that the future will be more specialized around certain features of the platform such as WebAssembly, WebRTC, WebGL, Web Audio, et al. And these will be more readily picked up by people with more durable skills, than those who only know the most popular front-end framework.
评论 #13439648 未加载
wheelerwjover 8 years ago
Just like you have to fight feature creep in your products, you have to fight &quot;shiny new tool &#x2F; language &#x2F; framework&quot; creep in your skillset. Become an expert in your topic of choice and use the best tools to get it done quickly, whether its 20 years old or two. If you spend too much time learning new tech, you won&#x27;t get it done quickly, but you shouldn&#x27;t force an old tool to do something just because you don&#x27;t want to learn something new.<p>As for the anxiety, turn off HN every so often and just focus on being a good engineer with your current tools. Nothing changes so fast that you can&#x27;t go a few months or even a year without being in the know. When it comes time to stsrt a new project, spend a week researching the current tools and see how they fit into your stack.
AnthonBergover 8 years ago
Understand the principles behind things. Most stuff is reinventing the wheels of implementation of a much smaller base of theories.
krasickiover 8 years ago
To give you some context, I&#x27;ll answer this as a [largely] life-long consultant. As such, I don&#x27;t chase technology, I anticipate the trajectory of job growth. I want the project that I decide to work on next to propel me to a project that will likewise broaden and deepen the experience and skillset I have to offer. &lt;p&gt;I also try not to get trapped into working for clients whose only interest in my experience is to recreate one of the last things I did. The easiest way to kill your value is to do the same thing over and over - even twice is too much.<p>It&#x27;s true technology progresses in dog years. When you are working you are not learning outside that bubble. When you are between assignments you absolutely must treat that time as a sabbatical to learn something&#x2F;anything new.<p>By broadening your skillset through selective project engagement, you are better off than Skippy who has worked on the same application with great job security for 5 years - Skippy will not be someone you will re-encounter 10 years from now unless you are buying a used car and they happen to be the sales person. The industry is self-selective this way. The complacent &quot;I got mine&quot; mentality is toxic to longevity in the industry.<p>Let me also dispell the meme that sticking to a specialty is a desirable thing. The fact of the matter is that the ocean of legacy code grows exponentially and there is always a need for someone who knows a legacy language or technology. this kind of career trajectory is as desirable as cleaning out septic tanks. There&#x27;s job security to be had and you&#x27;ll hear plenty of &quot;Ho, ho, ho - I don&#x27;t need no stinkin&#x27; new fangled whatever&quot; to be indispensible. My advice is not to be that guy&#x2F;gal.<p>It is a much harder and a much richer experience to navigate a career in the flow of technology than to get myopically paralyzed by a desire to featherbed where you are today. But your question is &quot;how&quot; to keep up. IMO, the answer is to skim lots of material and only dive in at the last most relevant moment. The generalist is far more qualified that the specialist these days because most companies cannot afford a prima donna - they need people who can perform many jobs and serve many needs.
oelmekkiover 8 years ago
For me, the answer is side projects. I keep playing with new ideas, and use new techs by the way.<p>It not only allows me to discover the tech, it&#x27;s also especially important because I refuse to make first contact with a tech by implementing it directly in a production project meant to stay around for years. The most projects I&#x27;ve used a new tech in before introducing it in my main project, the more comfortable I am that I did not do gross mistakes.<p>For me, it&#x27;s not the amount of time using a new tech that matters, it&#x27;s the amount of projects I used it in (because each time, I can try a different architecture).
crdoconnorover 8 years ago
I developed a checklist to spot technologies that are in an early stage of the hype cycle and avoid them.<p>The following are signals that a technology is in and early part of the hype cycle:<p>* It has the backing of a major corporation or a startup with a marketing budget.<p>* There are a lot of rave articles&#x2F;blog posts about building relatively simple or small self contained applications using this technology.<p>* There is a small but vocal contingent of users who are passionately against the new technology. Their arguments often link to bugs on the bug tracker, cite edge cases that occur under heavy usage and indicate fundamental oversights in the design as well as assumptions (and often arrogance) on the part of the architects.<p>* The benefits cited are either A) vague or B) explicitly aimed at beginners.<p>* Arguments in favor often appeal to authority (e.g. &quot;Google uses it&quot; or &quot;XYZ company use it in production&quot;), popularity (&quot;everybody&#x27;s containerizing these days&quot;) or cite benefits which were already possible.<p>* A high ratio of talk to action: the technology is talked about on Hacker News a lot but there appears to be very little real life stuff developed with it and a lot of the talk involves jamming it in where it&#x27;s not really necessary.<p>* Sometimes I experiment with a technology for an hour or two and I see if there&#x27;s anything obviously wrong with it or if the criticisms are valid.
huhertoover 8 years ago
- Be aware of new trends. You don&#x27;t have to learn everything. But pickup and try those that are promising to solve real problems in your current position.<p>- You should be able to move back and forth between management and technical positions. They are not mutually exclusive. You can a skill set that allows you to do either. It gives you greater perspective and flexibility. One piece of advice that I was given in college is that even if you are the Director of IT you should leave small (non-critical) pieces of software for you to work on. So you never lose touch.<p>- Try to work for good companies. My definition of good companies are those where you can be productive every day.<p>- Some skills will be helpful all your life. I learned Unix in 1989 and have used it almost every day.<p>- Learn the fundamentals. Data structures, algorithms, relational theory, structured programming, object oriented programming, functional programming, networking, Operating systems, theory of computation, et al.<p>- Understand the business domain in which you are working. That makes you extra valuable for your current company.<p>- Develop your soft skills. <a href="http:&#x2F;&#x2F;www.skillsyouneed.com&#x2F;general&#x2F;soft-skills.html" rel="nofollow">http:&#x2F;&#x2F;www.skillsyouneed.com&#x2F;general&#x2F;soft-skills.html</a>
jaibotover 8 years ago
Focus on the fundamentals. How do you find the write tools and libraries? How do you translate requirements into projects? How can you communicate with other people effectively? How can you learn what you need to know when you need to know it? How do you recognize sunk costs? What makes good code good code, regardless of language? What compromises should you make, and when? How do you ask the right questions?
swahover 8 years ago
Learn to learn, and focus on your current client&#x2F;task first instead of technology. People still get paid to write Cobol.
mfukarover 8 years ago
1. Relevant skills don&#x27;t change. Your abilities to reason on problems are never becoming irrelevant.<p>2. New technologies are adopted, doesn&#x27;t mean old ones quickly disappear. Sometimes not even slowly.<p>3. Area focus. If my area of expertise is networking, what do I care about VR? We can&#x27;t be generalists any more than we could be 20 years ago.<p>4. If you feel like being a generalist, understanding &amp; internalising (basic) principles is more important than being familiar with specific technologies<p>5. Critical, transversal thinking. You can weed out heaps of new technologies by understanding _how_ they fit in a system and the tradeoffs they require, before you have to become intimately familiar with them. Base your approach on tangible end-to-end measurements to understand how technologies might fit in a system, and after that you&#x27;ll have to keep up with a lot less than the various FOTM
luisehkover 8 years ago
Well, a critical eye is a must. Just keep away from the noise and pay attention to what would really make an improvement on your current framework&#x2F;workflow.<p>For example, I still do my web development in Django or Flask because they do the job, I&#x27;m pretty good at Python and most projects don&#x27;t really need the concurrency Go or Elixir offer.<p>One of the best recent additions to my skillset was Docker... a lot of people say containers are not a must but they really made my life easier and allowed me to do cool things for clients from different industries.<p>It doesn&#x27;t sound as cool as doing machine learning, computer vision or natural language processing, but don&#x27;t let the AI&#x2F;VR hype make you anxious, just focus on what you really want to do.
drtse4over 8 years ago
I&#x27;m more worried about people constantly believing that every new framework is a major advancement for programming and that it&#x27;s not just something that could be learned in an afternoon (e.g. React). Or about people following the latest hyped trend without learning anything and without producing much other than more hype.<p>AI,ML and VR are all really interesting, but as we all know they are not completely new and will not likely account for the majority of the future jobs.<p>Fundamentals are what matter, most of these &quot;new things&quot; are just something that you can learn with relatively limited effort if needed. Classic programming skills, analytical skills or things like the ability to reason about concurrency issues never go obsolete.
johanneskanybalover 8 years ago
I learned the hard way about 10 years ago what happens when your current skill set becomes obsolete, since then I&#x27;ve become very focused (and lucky) and only take on really enjoyable and unique projects. That way it&#x27;s easy to be exited and do a good job during a project, communicate your passion in future interviews and transfer that enthusiasm in your previous projects to potential future employers.<p>The exact tech choices doesn&#x27;t matter that much it&#x27;s more of the overall direction (in my case analytics, in a bunch of varied sub-fields).<p>Although the top comment has some merit I&#x27;d argue c&#x2F;c++ is an outlier here rather than the norm.
pseud0rover 8 years ago
I learn new skills at the job, but at the same time I find that it&#x27;s not enough. What works best for me to really get into new areas and update my skill set is to regularly take MOOCs and then try to find ways to use the new skills at my job.<p>At the moment I&#x27;m taking this course in Deep Learning<p><a href="https:&#x2F;&#x2F;www.kadenze.com&#x2F;courses&#x2F;creative-applications-of-deep-learning-with-tensorflow&#x2F;info" rel="nofollow">https:&#x2F;&#x2F;www.kadenze.com&#x2F;courses&#x2F;creative-applications-of-dee...</a>
raverbashingover 8 years ago
Beware of those that make it more important to follow the latest trend than to follow their business model (or that just go &quot;what&#x27;s a business model?!&quot;)
mbrodersenover 8 years ago
A great quote from Lambert about what software development is:<p>1. Decide what the program should do. 2. Decide how the program should do it. 3. Implement these decisions in code.<p>Only the last part is actually coding.<p>In other words, as a software developer, you are <i>not</i> paid to type. You are paid to <i>think</i>. And the deeper your knowledge and experience, the better tools you have to actually do that. So focus on learning step 1 and 2!
voyceyover 8 years ago
I think having a good core is more important than the &quot;latest flashiest framework&quot; &#x2F; &quot;New Language&quot; &#x2F; &quot;whatever&quot; at the end of the day it will be your experience that gets you out of the shit, not some new tool! However saying that I think it is important to not let yourself go stale. I worked with a company that had about 6 devs that were doing things seriously old school, they had no interest in upgrading their skills and for someone who likes to keep on top of the new features on languages it was painful to work with them. In the end however, when they left that company they probably found pretty quickly that they were unemployable!<p>For me personally, I find that I generally have free reign to test out &quot;new (to me) technologies and my experience helps me realise quickly if they are going to be helpful or a bust!<p>Take any opportunity you can to do a &quot;little project&quot; in something that interests you and then apply it to problems in your work!
oblibover 8 years ago
Like pjc50, for the most part I don&#x27;t. Last year was the exception.<p>I&#x27;ve been making web apps since 1998. Last year I learned how to use CouchDB and PouchDB. Before that I used a flat file database and the built-in filesystem to manage data. I used Perl on the backend with just a bit of JS on the front end to run the apps.<p>I never did learn how to use MySQL&#x2F;PHP. I looked at it, decided it was a butt ugly way to make websites, and apps and admitted to myself that I wasn&#x27;t qualified to design secure SQL apps and didn&#x27;t want to learn because that is a career all by itself.<p>So I waited for something better to come along and last year CouchDB along with PouchDB hit the mark so I spent the year learning and using them. It was worth it. With those tools I am faster and better.<p>The years in-between were spent getting stuff done with the tools I was good at using, not trying to learn how to use a zillion other tools to do the same things.<p>I looked at a lot of newer tools again last year with an eye towards what was &quot;best&quot;. There is a lot of cool stuff out there that does some really jazzy stuff, but in the end I decided to take another look at what was &quot;easiest&quot;.<p>I ended up with CouchDB, PouchDB, and JQuery. Easy to learn and incredibly rich APIs with lots of support and example code. There&#x27;s more than enough in those to learn and keep up with and if I need to add something I&#x27;ll look for easy ways to do that too.<p>The truth is, it takes time to be productive with any language or tool or framework you use. It&#x27;s a scatterbrained approach to try to build software with something new every time you start a new job.<p>Right now there are tools being built that will make &quot;AI&#x2F;VR&quot; easier to implement. Wait for the tools.
Insanityover 8 years ago
Well about the ones you have said in specific, AI&#x2F;VR, I do not think they will be a requirement for the majority of jobs in the software industry for quite some time.<p>I believe that even though technology changes fast, the things you need to change do not move as quickly but that probably depends on the company and technology that company is using in the first place.<p>Where I am working, we are writing software mostly in Java, some analysis on the data with Splunk and SQL for the database.<p>Sure enough I had to keep up with Java development but it is not _that_ rapidly. Nevermind the fact that the company only now is switching to Java 8.<p>That being said, I do like learning new things in the field but they are not the &quot;latest cool things&quot;, for example now I am learning Haskell by reading books on it and doing excercises, the normal way to learn a new language afaik.<p>I do tend to check out things that tickle my interest, lately I have made a small app in Angular2&#x2F;Dart because it sounded interesting, but by no means have I learned to use them in-depth.
mbrodersenover 8 years ago
Don&#x27;t until you need to. If you are planning to leave your current job then look at job offerings in the market and learn the tech needed to get one of those jobs. And since the technology <i>underlying</i> whatever tech is currently fashionable hasn&#x27;t changed the last 50 years, it will be relatively easy to learn enough to get a job. The rest you learn on the job when solving specific problems. I would <i>instead</i> focus on learning the core tech that hasn&#x27;t changed for 50+ years. Including functional programming, logic programming, how a computer fundamentally works (NAND gates) etc. What you learn from that will never become obsolete. You just need to translate what you learn into whatever the latest fashion framework&#x2F;language call it and ignore the false hype.
评论 #13422699 未加载
AnimalMuppetover 8 years ago
When I was in college, I majored in math and physics. Only two math classes gave me trouble. One was Real Analysis. There were just too many theorems. I couldn&#x27;t remember them all, and then I couldn&#x27;t figure out what to use to solve the problems on the test.<p>Eventually I realized that, out of maybe fifty theorems, only maybe three were used to prove all the others. So I memorized those three, and worked out anything else I needed for the test on the fly.<p>You don&#x27;t need to keep up with the Hotness Of The Week(TM). You need to know the fundamentals well, and you need to be able to learn the rest <i>when you need it</i>.
trelliscodedover 8 years ago
3D graphics math is all trig and linear algebra, with some signal processing. You don&#x27;t have to know that stuff to use unity to build VR apps, but it helps. Those skills will never, ever, be obsolete. Even deep learning is rooted in linear algebra.<p>The technology churn in other spaces like front end development can be mitigated by learning to read really fast. I don&#x27;t have deep experience with any one front end framework, but I can inhale the docs and source code pretty fast when I need to get my hands dirty with one. Again, speed reading is a skill that will never be obsolete.
bsvalleyover 8 years ago
I think you&#x27;re mixing 2 things. First, what investors are investing in (AI&#x2F;VR), then what kind of jobs will tech companies offer in a near future. I think the second one won&#x27;t change, what will change will be the visions and missions of the future companies. There will still be software development for a while, even if you work for an &quot;AI&quot; company. These are just hot keywords in 2016&#x2F;2017
garysielingover 8 years ago
I wouldn&#x27;t let AI &amp; VR worry you- that type of growth in the field means new types of jobs.<p>As far as updating my skillset, I watch conference talks, and I built a site that has a big index of them: <a href="https:&#x2F;&#x2F;www.findlectures.com&#x2F;?p=1&amp;class1=Technology&amp;type1=Conference&amp;talk_type_l2_Conference=Software" rel="nofollow">https:&#x2F;&#x2F;www.findlectures.com&#x2F;?p=1&amp;class1=Technology&amp;type1=Co...</a>
bbcbasicover 8 years ago
I&#x27;m concentrating on learning stuff that fascinates me. This also happens to be computer science skills that won&#x27;t go out of date for a while. Some of it discovered before silicon chips! Even if it won&#x27;t directly help me in my job today or getting a new job, it Will help my career in the long term by making me a better thinker and programmer.
jankotekover 8 years ago
Do not update it. Technology is actually painfully slow. Maybe you need to change technology once in ten years (such as moving from C++ to Java).
评论 #13439710 未加载
daw___over 8 years ago
If you have the possibility then try joining larger and younger teams at work. Also: be constantly aware of the current state of technology. You can&#x27;t have a deep knowledge of everything but at least knowing which problems a new technology solves helps a lot.
评论 #13416393 未加载
aruaruover 8 years ago
Side projects
golergkaover 8 years ago
Fundamentals.<p>I&#x27;m a game developer who have worked in 2d social&#x2F;mobile lately and am now getting into VR. Turns out, if you know how rendering pipeline works, it&#x27;s not such a foreign land after all.
评论 #13428042 未加载
vorotatoover 8 years ago
Don&#x27;t hold on to the bleeding edge so tightly and you won&#x27;t get cut. It&#x27;s fine to ride the wave, but don&#x27;t forget to polish your less specific skills.
samblrover 8 years ago
Asking this question might help - how could I have learnt what I have learnt already in very less time. Writing down steps or rules could help narrow down to current scenario.
zxcvvcxzover 8 years ago
Here is how it&#x27;s going for me. For background, over the last few months I&#x27;ve very quickly become adept in deep learning, being able to understand current research papers, read through textbooks, implement my own models with Tensorflow and other libraries, and train real models on remote servers (e.g. AWS). For reference, I have an engineering background but no formal schooling passed an undergraduate degree.<p>The situation: my early-stage startup is fundraising right now, which can be kind of a time sink. Lots of accelerator&#x2F;grant&#x2F;angel applications. There&#x27;s a good chance we hit our seed round, but also a good chance I&#x27;m unemployed next quarter when&#x2F;if runway runs out.<p>In either case, I decided that AI, specifically deep learning, would be incredibly important to my career. The startup will need the expertise in the future (so I&#x27;ll have to understand how to hire people with it), and should I need to find another job in a few months, this is a pretty cool field to learn and I find the work enjoyable (previously was a data scientist but foused more on vanilla regression and convex methods).<p>Therefore since November I&#x27;ve portioned out 20 hrs&#x2F;week to the startup focusing on its fundraising and BD needs, which leaves a whole lot of other hours for skills development. Here has been roughly my curriculum:<p>- Mathematics review, and basic neural networks. For this I went over multivariable calculus and lin alg, which I&#x27;ve always been fairly strong, by essentially trying to derive the backpropagation derivatives for simple vanilla neural networks. Then make sure I understand derivatives and matrix data organization for convolution, which is a key component of modern ML. Sources: pencil and paper, and lots of Google to answer any of my questions. Time: 1-2 weeks.<p>- CS231n online course: <a href="http:&#x2F;&#x2F;cs231n.stanford.edu&#x2F;" rel="nofollow">http:&#x2F;&#x2F;cs231n.stanford.edu&#x2F;</a> Great summary of modern methods in deep learning, plus more foundational level stuff. I read through all the lecture content and made sure I could work through derivations, because for me at least this cements technical understanding. Some of them are sort of tedious, e.g. manual RNN backprop. Also this course has great and simple software examples, I read through the code to make sure I understood the numerical computation and data organization parts. I also ran a few software examples and played around with parameters for fun (and learning). Time: 1 month.<p>- Reading research papers (and online lectures) on applications that interest me. For this phase, I found 10 initial research papers that interested me. The topics for myself included image classification (starting w&#x2F; classic 2012 Hinton paper), reinforcement learning, robotics applications, video prediction. This step was harder, can be like learning a new language. Not every paper is going to make sense at first. But go through enough of them and you&#x27;ll build up familiarity. Sources: can start by searching through reddit.com&#x2F;r&#x2F;machinelearning Time: 2 weeks.<p>- Learning software frameworks. From the above step I came up with my own small sample problem related to stuff I read that I could test even on my weak laptop (remember, training these big networks requires big computing power). So in this step I started researching different frameworks, and settled on starting a small project with Keras. Sources: google around for deep learning libraries, read up on them, see what you like, and most importantly, have a motivating sample problem that you wanna code up. Time: 2 weeks.<p>- Harder problems, more software, more papers. This is where I&#x27;m at now, it&#x27;s sort of like an iterative research loop where I 1) come up with new problems I want to solve, 2) learn more about the software I need to implement it, and 3) search more prior work to gain insights on how I can solve the harder problems. In particular, I&#x27;ve switched over to learning and using Tensorflow, and also learning how to use AWS for stronger computing. So I had to dust off some linux scripting and command line skills too. Like I said, this is fairly iterative and probably closer to &quot;modern research&quot; where learning from my (virtual) peers and experimentation and production are closely linked. Time: from the last month to present.<p>Overall, in the last 3 months or so at about 30 hrs&#x2F;week I&#x27;ve added an extremely powerful new skillset to my arsenal that I&#x27;ve been meaning to do for quite some time. I can understand 90% of all modern research in the field, and create useful software to solve data-driven problems. Completely for free as well, aside from the $0.81&#x2F;hr I pay to AWS for training some networks overnight. This is the type of thing I&#x27;d have wanted from a Master&#x27;s (or even PhD) program, but who wants to go back to school...<p>Hope this helps someone :) Remember, AI&#x2F;ML is more approachable than most people think, you just need to start with a solid mathematics background. After that you&#x27;ll be flying, the field is relatively quick to learn, especially if you like learning through doing.
pryelluwover 8 years ago
What is your current skillset? Maybe we can help guide you and ease the anxiety.
MichaelBurgeover 8 years ago
I&#x27;m taking a couple courses from Udacity. They have both AI and VR courses.