"Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author." A Microsoft employee talking up C#, what a surprise.
If you had to start over, what technologies would you learn in 2014?
81–90 of 182 posts
Re: If you had to start over, what technologies would you learn in 2014?
#82SAP. It's not particularly exotic but it runs the world.
EDIT- If anyone is interested in this area, let me know!
Re: If you had to start over, what technologies would you learn in 2014?
#83It 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.
Re: If you had to start over, what technologies would you learn in 2014?
#84I'd learn F# + C + Rust + TypeScript/ES6. Anything that lets me avoid learning C++ or JS.
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…
Re: If you had to start over, what technologies would you learn in 2014?
#85It 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…
I'd only amend this to say "web startup." While HN is very web-centric there are a lot of other startups out there that have nothing to do with the web.
Re: If you had to start over, what technologies would you learn in 2014?
#86I'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 match a single one of the three broad back-end categories -- generally Java, Microsoft, or "open-source" (PHP/Ruby/Node/etc.) -- since any programmer is usually only going to be really proficient in just one of those. If we assume companies are split 3-way, you're instantly limiting yourself to 1/3 of possible companies.
But on the front-end, there's no balkanization. It's just JavaScript, JavaScript, JavaScript. It's not too hard to learn JavaScript and jQuery inside and out, and with some solid CSS experience, knowledge of good development patterns, and maybe a framework or two, you can interview practically anywhere.
Re: If you had to start over, what technologies would you learn in 2014?
#87Earlier quoted context omitted.
On Facebook, I remember a time when the native app was horrible on Android. In many ways it still is - it requires too many permissions and the list is growing. Recently they're asking for access to my SMS messages and in Android 4.3 I had a bug with my Nexus 4 in regards to location services as the Wifi-network provider was draining my battery and so I had to disable it, so Facebook's app was still requiring it, act…
I suppose in your case you're choosing between two bad options. The iOS app is an example of how much better a native app can be from the web app - and the new paper app even more so. I remember the android one being terrible when I had android phones a couple years ago - but I thought that was because it was basically a wrapper around a web app.
What if history repeats itself? What if iOS will in the end fail in the marketplace, reducing its share to a single digit? What if Apple continues against all odds to develop and support it, like it did with the Mac OS? What if you'll still use it?
Wouldn't you be happy then that there's a web interface available?
And from a developer's perspective - you could say that you want to target iOS users first. That may work out well for you. However, for example, I never, ever tried Instagram because when Instagram was all the rage, it wasn't available for the platform(s) that I'm using. And later the momentum for me was gone. That's a lost opportunity.
In the end, it may work out well for the developer - however, considering that iOS's marketshare is minuscule compared to the people that have access to web browsers, I personally don't see how you can build the next Google or Twitter or Facebook by not targeting the web first.
For another example of companies that failed to do this - WhatsApp Messenger will probably die or get acquired, because Facebook is eating its launch, as Facebook works everywhere and when I send a message to my wife, she either reads it on her phone, or in the browser tab that she keeps open when on her laptop. FB's messaging works on my iPad too, whereas WhatsApp doesn't because WhatsApp is identifying users by their phone number.
Re: If you had to start over, what technologies would you learn in 2014?
#88I'd learn F# + C + Rust + TypeScript/ES6. Anything that lets me avoid learning C++ or JS.
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…
Re: If you had to start over, what technologies would you learn in 2014?
#89If 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…
Re: If you had to start over, what technologies would you learn in 2014?
#90And no, Eclipse is not an alternative, though maybe NetBeans is, which are two statements I really wouldn't have said 10 years ago. I don't really feel like it's a case of Visual Studio having gotten significantly better. NetBeans has gotten significantly better and Eclipse has gotten significantly worse. MonoDevelop and Xamarin Studio are waaaaay too buggy to be useful. I find myself gravitating to a text editor like Geany or really anything that combines syntax highlighting, tabbed documents, and a file explorer. It's amazing how infrequently those three things come together (I'm looking at you, Notepad++ and Notepad2), or just don't work very well (Hi there, LightTable and DrRacket).
While I like C#, the promise of quality cross-platform software with it is mostly a boondoggle. The hoops you have to jump through, and the state of the dev tools for Mono, just push me towards Java anytime I need a cross-platform desktop GUI app.
And that's sad. Because it's not like Java does a particularly good job of it, it just does a site-better job of it than most anything else. I don't have a good enough handle on the C toolchain to pick up and run with Qt or GTK and cross compile for every platform. And nobody pays enough attention to desktop in basically any other language.
Please, correct me if I'm wrong, because I'd really, really like to be wrong here. I suppose I could do [Pythong|Ruby|OCaml|Haskell|Racket]+[GTK|Qt], but it feels grating. It doesn't match. As far as I can tell, there is no GUI library that works well in functional languages--even a wrapper on top of an OO one. But again, correct me if I'm wrong. Please.
Other than that, I wish I had ditched SQL Server a long time ago. Postgres is just as easy to install and use now, and has been for several years. I wish I had the balls to replace my clients servers with Postgres and just not tell them about it. They probably wouldn't notice.
I wish I had never wasted time on Python.
I wish I had kept gaming to my Playstation and stuck it through with Linux back in 2000.
I wish I had not gone to college. Going to college meant I had to get a job that paid well to service my debt afterwards. And for where I lived, that meant I had to buy a car. Even still, being 22 years old and having only $35k in debt was far better off than most of my peers, and even better still than most of the kids graduating today, so I guess I'm not too badly off. But still, I think about the last 10 years and really wish I had been writing all of that software for myself rather than The Man.
What the hell was the point of writing all those projects in college for the command line? 4 years of wasted practice on an interface only other programmers care about. It is such a fundamentally different paradigm, and most of my peers didn't transition well. I didn't transition well, and I've been either the most successful person or at least in the top 3 of my graduating class.
I wish I had never stopped doing screwy shit in JavaScript. There was stuff I wrote in 1997 that people are pushing today as "the power of HTML 5!" If I stuck with it, instead of listening to my "betters" at work or in college, then I think I could have contributed a lot more.
So, less about what specifically I would have studied, and more about not listening to what others have to say about what I should have been doing.