Live data from Hacker News

If you had to start over, what technologies would you learn in 2014?

hanselman.com

101–110 of 182 posts

Re: If you had to start over, what technologies would you learn in 2014?

#101
post #2

It depends on your goals. If your goal is to do a startup, then the obvious choice is to really master an entire web stack. For instance linux / nginx / python / html / css / javascript. If you want to do research in computer graphics, then you better learn OpenGL and C++ or .NET. Want to work in embedded systems? C. Scott's recommendation of C# & Javascript is a solid and pragmatic choice, good for those looking for…

Can you do without only Python and its framework for programming side? As someone new to programming, I find it mind boggling how folks suggest learning multiple languages. Or does it become natural after you know one language very well.

The thing with programming languages is that while they sometimes look very different cosmetically, they often share similar concepts under the hood.

IMHO, you won't go wrong learning one language reasonably thoroughly as a starting point. In fact, I'd recommend it for several reasons.

However, sooner or later, you'll probably hear that another language might be more useful for another project you want to do, and maybe then you'll learn that second language too. As you do, you'll notice similar ideas cropping up, even if they go by different names or use different syntax.

As your experience grows, you start to think of each programming language as being roughly in this family or that family in one respect, and maybe being like these other languages or those other languages in some other respect. You also probably notice more what still makes each language distinctive, whether it's a few idioms that make writing a certain style of code easier, or maybe a couple of unique features that aren't widely available in other languages that are otherwise quite similar.

In the long term, it's these distinctions that make it useful to know several different languages. Even then, most of the languages you know will draw most of their tools from the same toolbox, and learning when to use a hammer and when to use a screwdriver will be more important than which brand of hammer or screwdriver you buy.

Re: If you had to start over, what technologies would you learn in 2014?

#102
post #17

Earlier quoted context omitted.

I don't think it's just discoverability though. I think the main question is if mobile web applications will be able to match native on both quality and performance. Facebook attempted this and failed badly, but that doesn't mean it can't happen or that native will always have an edge. If native does continue to have an edge though then I think web has an uphill battle.

You can remove the word mobile. Web apps are still heavily inferior to native desktop apps. The answer to 'why mobile web apps?' is the same answer as to 'why desktop web apps?'

Depends on your definition of inferior. I can count the number of desktop apps that I use on a daily basis on one hand, and they're all development tools. I have more than twice that number of pinned tabs in my browser that are open at all times.

Re: If you had to start over, what technologies would you learn in 2014?

#103

Earlier quoted context omitted.

"It's that he thinks that the web will win (over app stores). I strongly believe that he's right there." "Whoever can make the Google of app discovery might make a temporary splash, but i bet that, not long after, people will return to plain old Google Search." You remember me to Kodak's "people will return to make analog photos, people want to hold something in their hand". You are deluding yourself, and you can't s…

> "In the browser is like 500 if we were to do things on javascript." That's more like 1.5x: http://asmjs.org/ http://www.unrealengine.com/html5/ https://hacks.mozilla.org/2013/12/gap-between-asm-js-and-nat... > "Android is not web for a reason. It sucks for lots of things. It is not that Google has not tried, as it is in their best interest to do so." Google hasn't tried deep integration of web apps with Android. Th…

It is odd that the Chromebooks are best-sellers. I have never ever seen one "in the flesh" here in the UK.

Perhaps I am not visiting coffee shops enough? Anyone else seen one?

Re: If you had to start over, what technologies would you learn in 2014?

#104
post #60

Earlier quoted context omitted.

Once you know C, you've already gone through most of the pain with regard to C++s warts, but you still have to treat it as a new language. I really don't know why people have such a problem getting to grips with pure-C++ functionality like templates, virtual functions, inheritance, RAII, exceptions, references, type system oddities, rvalues and lvalues and their references, operator overloads, extended temporary life…

I don't mind the C++ that is "C with objects". What bothers me is the broken template metaprogramming, endlessly varying kinds of special pointers, massive libraries that does the same things slightly differently and so on.

"endlessly varying kinds of special pointers" haha that made me laugh thanks! I had never noticed it before!

TBH, although Bjarne in his most recent book heartily recommends using references everywhere and smart pointers, I seem to be throwing pointers around with no problems. The RAII approach and clean up in the destructor is the safest way to do things in C++, and the tidiest!

I would have great difficulty moving over to C to think of a way to write a program, so it is comforting to find someone who would struggle to move to C++ from C. They really are different beasts.

Again, thanks for the laugh haha

Re: If you had to start over, what technologies would you learn in 2014?

#105
This idea that a software engineer picks a language as his "favourite" and becomes a "Ruby developer" or a "JavaScript developer" ever since is completely misguided, and I'm sad to see it cherished further in this article.

Languages are tools, and tools should be picked depending on the project: its application domain, performance requirements, availability of libraries for important subproblems that have been identified, target platform, etc., there are lots of very concrete factors to look into. Completely ignoring those factors in favour of choosing your "favourite" or one of just 2 languages you happen to like, is going to have suboptimal results. A good engineer knows a lot about programming languages in general (what is taught in a university "Programming languages" course), has basic experience with a huge number of languages, and picks the programming language for the project based on this knowledge, based on research and on prototyping, that's how I see it.

I recommend looking back at Marvin Minsky's 1970 Turing Award lecture "Form and Content in Computer Science". Little has changed since:

The trouble with computer science today is an obsessive concern with form instead of content.

http://web.media.mit.edu/~minsky/papers/TuringLecture/Turing...

Re: If you had to start over, what technologies would you learn in 2014?

#106
post #68

Ultimately these things are a matter of opinion, but as a developer who knows C#, I'm not sure I'd bother to learn it again if I had to completely reboot my knowledge. I can understand the perspective of being pragmatic with regards to the job market, but while there are an abundance of C# jobs available, offers tend to be lower unless you're specialized in Sharepoint or very senior. Culture can be a challenge in tho…

In the valley, python & ruby will probably have higher salaries. Outside probably Java and C#.

That's probably different in the Welsh valleys.

Re: If you had to start over, what technologies would you learn in 2014?

#107
post #99
post #69

Earlier quoted context omitted.

Pick a job that will not get automated in 10 years.

care to elaborate on what exactly you mean by "automated". I fail to see how installing physical hardware can be automated.

The new keyword is SDN I guess - software-defined network. A lot of what was the standard in networking and hardware domain is migrating to software now. Especially when you're running many dynamic virtual hosts, you may want to move the tricky networking parts into easy to redefine software configuration on the host itself.

This idea will get only more popular soon. Of course there are also products that allow you driving the physical boxes remotely - like openflow. I think the mix of those technologies will get quite important in the future. I'm not sure if that's what the GP meant though.

Re: If you had to start over, what technologies would you learn in 2014?

#108

If you're looking to maximize your choice of companies to work at, one piece of advice could be to focus on front-end instead of back-end. I'm equally proficient at front-end and back-end, but the last time I did a whole bunch of interviews, I advertised myself as a front-end programmer (since there aren't too many full-stack positions around). Why? As a back-end developer, you're limited to picking companies that ma…

>It's just JavaScript, JavaScript, JavaScript.

No it's not. Because JavaScript the language is so bare-bones, you need to supplement language deficiencies with frameworks and libraries. So you go and pick from a menu of Backbone/Marionette, Angular, ExtJS, Ember, Kendo, jQuery or etc. - some of them work together, some of them don't. Most of those get you part of the way there, you may still need to pull in things like require.js to manage imports. Or, instead of raw JS, you go with TypedScript, or Dart, or CoffeeScript, or whatever, and then put a framework on top of those. You're still not done, because that gets you the JS part, usually you complement it with a CSS framework (like bootstrap) and a SASS framework. In the end, you have a hodgepodge of frameworks of libraries, that plug JS holes, and functionally look and feel different.

So no, it's not simply JavaScript everywhere.

Re: If you had to start over, what technologies would you learn in 2014?

#109
post #63
post #47

1) Any high-level language that runs in the Java VM. Because 1) there's tons of open source libraries 2) syntactic sugar for devs 3) operational stability of the VM 4) flexibility of running it on both open source and closed source OSes meeting a variety of business requirements. 2) A scripting language for gluing your operations together, for quick and dirty services, prototyping, etc...: Python 3) JavaScript.

Is there a C# on the JVM ? it would be awesome.

There's jvm for .net: http://www.ikvm.net/ and .net (clr) for jvm: http://xmlvm.org/clr2jvm/

Re: If you had to start over, what technologies would you learn in 2014?

#110
post #99
post #69

Earlier quoted context omitted.

Pick a job that will not get automated in 10 years.

care to elaborate on what exactly you mean by "automated". I fail to see how installing physical hardware can be automated.

Clouds, software-defined networks, virtual machines etc.
Post reply on HN