×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: It's 2014 -- Which New Technologies Should I Learn?

Soulskill posted about 3 months ago | from the integrated-abacus-solutions dept.

Education 387

An anonymous reader writes "I've been a software engineer for about 15 years, most of which I spent working on embedded systems (small custom systems running Linux), developing in C. However, web and mobile technologies seem to be taking over the world, and while I acknowledge that C isn't going away anytime soon, many job offers (at least those that seem interesting and in small companies) are asking for knowledge on these new technologies (web/mobile). Plus, I'm interested in them anyway. Unfortunately, there are so many of those new technologies that it's difficult to figure out what would be the best use of my time. Which ones would you recommend? What would be the smallest set of 'new technologies' one should know to be employable in web/mobile these days?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

387 comments

NEW TECH ??? (-1, Flamebait)

Anonymous Coward | about 3 months ago | (#46033917)

go into marketing, the fact that you even dare to ask this questions immediatly places you in the best category to become a successful marketingdroid.

Re:NEW TECH ??? (1)

smitty_one_each (243267) | about 3 months ago | (#46034289)

If "anonymous reader" actually does embedded C, then I'd envision him running amok if he tried out for the marketingdroid team. Unless you're supplying free Drano.

It's not about which technology (5, Insightful)

Taco Cowboy (5327) | about 3 months ago | (#46034501)

The question that TFA asked "Which technology should I learn" is in itself, a wrong question.

The author should have asked him/herself "What do I want to do 10 / 20 / 30 years from now?" and then proceed from there.

There will always be technologies - many old technologies will still be around and some new technologies will be discovered / created - and once the author knows what kind of situation he/she wants to be in the future, he/she can start picking which route to go

Many people have chosen the wrong tech and end up in the wrong career, but at the end of the day, it's up to that person to "right the wrongs" and to make the best situation out of the mudane, for its his/her life and he/she should be the master of his/her own life

Take me, for example. Some 40 years ago I ended up in the States and did not know what to do. At that time there wasn't much for me to chose - genetic wasn't available, laser tech wasn't mature, and many fields were closed to me, a person who is not a born American.

So I ended up in computing. I dabbled in both hardware and software ever since.

Would I choose computing if I got the chance to start over ? Perhaps not. But, as I have said, back in the early 70's there wasn't a lot of tech fields opened to a nerdy kid from China.

it's a completely amazing technology... (-1, Offtopic)

crutchy (1949900) | about 3 months ago | (#46033919)

...it's called "outdoor activity"

completely amazing and revolutionary stuff

although i'm personally opposed to any such new technology... that's why i still use linux :-)

Re:it's a completely amazing technology... (0)

Anonymous Coward | about 3 months ago | (#46033935)

...it's called "outdoor activity"

completely amazing and revolutionary stuff

although i'm personally opposed to any such new technology... that's why i still use linux :-)

what a douche. im pretty sure he/she isn't interested in what YOU aren't interested in. your comment was absolutely unhelpful to them or anyone thinking about the same question :/

Re:it's a completely amazing technology... (0)

Anonymous Coward | about 3 months ago | (#46033951)

as if your reply were any more useful

2014 will be the "year of the fatass", so my comment was extremely relevent

Re:it's a completely amazing technology... (0)

Anonymous Coward | about 3 months ago | (#46034093)

Yeah, but it will be "year of the _linux_ fatass", so there's that.

Re: it's a completely amazing technology... (0)

Anonymous Coward | about 3 months ago | (#46034377)

Windows is the one that is bloated.

Re:it's a completely amazing technology... (0)

Anonymous Coward | about 3 months ago | (#46034291)

If he wasn't interested, then he's pretty stupid for posing his question publicly.

Re:it's a completely amazing technology... (0)

Anonymous Coward | about 3 months ago | (#46033947)

How is not Linux a new technology?

HOW TO CLOSE A BRIDGE WITHOUT GOING TOO FAR !! (0)

Anonymous Coward | about 3 months ago | (#46033921)

Or, how to not get caught !!

Learn the basics (5, Informative)

Anonymous Coward | about 3 months ago | (#46033923)

Get intimate with the http protocol first and foremost! I can't tell you how many times I've worked with "web developers" who have no clue what the different HTTP verbs do, or why they're there in the first place.

Secondly, if you want to code backend I''d stick to backend. Find a serverside technology that suits you(ASP.Net, Java or PHP) and start learning. Don't waste to much time learning frontend web technologies, as that's a completely different workflow to what I think you want to do. Most serious web development companies have dedicated frontend developers for a reason :).

Good luck!

Re:Learn the basics (2)

Opportunist (166417) | about 3 months ago | (#46034161)

Why they are there? They don't even know THAT they are there!

If your web dev looks at you blankly and asks "Verb? What verb?", you know that you have a long way to go.

Re:Learn the basics (4, Informative)

Ash Vince (602485) | about 3 months ago | (#46034495)

Why they are there? They don't even know THAT they are there!

If your web dev looks at you blankly and asks "Verb? What verb?", you know that you have a long way to go.

As I a web developer of the past decade or so, I can honestly tell you I have had to dive into the meaning of HTTP verbs exactly once in all that time to do stuff with HTTP PUT.

The reality is that you can actually be a dam successful web developer without having a clue what an HTTP Verb is even though you use them every time you create form that posts its variables instead of putting them on the querystring. Does it make you a better web developer knowing a bit more about HTTP Verbs? Absolutely, it does but you can use them on a daily basis without knowing how putting Method="POST" on a form is translated into the underlying HTTP protocol since most web technologies abstract this stuff away from you.

The time when understanding a bit more about HTTP protocols really comes into play is when you need to start creating or utilizing API's.

Work on the basics (5, Informative)

mozumder (178398) | about 3 months ago | (#46033927)

Javascript/jquery front ends, php/python/ruby/sql backends.

Objective-C for iOS.

Those will keep you employed for the next 10 years.

Re:Work on the basics (5, Insightful)

crutchy (1949900) | about 3 months ago | (#46033937)

dunno what retard modded parent down... maybe he's just an asphole

as much as javascript is as shit as python, it's like that annoying relative that you just can't get rid of so you may as well get used to

client-server has been at the forefront for years and will continue to be the case, particularly as clients evolve in the mobile arena the only fixed baseline is the trusty ol' web browser

Re:Work on the basics (0)

Anonymous Coward | about 3 months ago | (#46033967)

No one modded GP down, they just have terrible karma.

Re:Work on the basics (4, Informative)

Anonymous Coward | about 3 months ago | (#46033995)

And Java, for Android development.

Re:Work on the basics (5, Interesting)

Spy Handler (822350) | about 3 months ago | (#46034023)

Objective-C for iOS

This. Since you already have 15 years of C experience, you should pick this up quick. And it will set you apart from all the noob JS/php "developers" whose only knowledge of C is that it's the third letter of the alphabet.

Re:Work on the basics (5, Funny)

VortexCortex (1117377) | about 3 months ago | (#46034129)

whose only knowledge of C is that it's the third letter of the alphabet.

Actually, 'C', is the second letter of the alphabet's char array. 'A' is zeroth.

Re:Work on the basics (5, Funny)

Daniel Hoffmann (2902427) | about 3 months ago | (#46034147)

Actually C is the 0x47th letter in the alphabet I use.

Re:Work on the basics (0)

Anonymous Coward | about 3 months ago | (#46034241)

You are still using ASCII? Please tell me that it's atleast the extended ASCII.

Re:Work on the basics (1)

Anonymous Coward | about 3 months ago | (#46034189)

Even something in the zeroth index of an array is the first item in the array....

So C is still the third item in the array...

I know, math is hard.

Re:Work on the basics (0)

Anonymous Coward | about 3 months ago | (#46034265)

cardinal / ordinal - learn it.

Re:Work on the basics (2)

gbjbaanb (229885) | about 3 months ago | (#46034031)

the jobs I see the majority of adverts for (by far) are all ASP.NET (yes, I know its poo, but technical quality was not a criteria in the question).

That said I am also seeing a lot of jobs wanting embedded linux (with networking stuff to get at cloud-connected servers)(probably so companies can filch your data and sell it to advertising companies), that pay rather a lot. So frankly, learn that!

Re:Work on the basics (1)

cyber-vandal (148830) | about 3 months ago | (#46034145)

In what way is it poo? Or poor technical quality?

Re:Work on the basics (0)

gbjbaanb (229885) | about 3 months ago | (#46034417)

Partly its stolen all the ideas of Ruby on Rails, but didn't implement them particularly well, having to force them to work in a more .NET way rather than a Rails way. This makes it reasonably convoluted and complex especially as you try to make entity framework work like activerecord.

Secondly, its still a web-server framework rather than a way to create web GUIs. I disagree with the idea of putting all your business logic, and db connection code in the webserver, not when webservers are the first thing to get hacked.

Re:Work on the basics (4, Funny)

mysidia (191772) | about 3 months ago | (#46034249)

Javascript/jquery front ends, php/python/ruby/sql backends.

Don't forget to learn SQL and libbdb/BerkeleyDB for databases; Qt for user interfaces; Davlik for Android. Java.... Java EE... Java JUnit.... C#. C++... Objective-C OCUnit, Cedar. Behavior-driven test tools, JBehave. Selenium framework; Cucumber, RSpec, and Capybara for testing: Javascript jasmine; Python Lettuce or Splinter . C# MSpec, SpecFlow, WaitN.

Re:Work on the basics (4, Insightful)

olau (314197) | about 3 months ago | (#46034355)

Python is a really nice language. For a Python backend, you could start with the Django tutorial [djangoproject.com] . Go through that and a Python tutorial, and try to remember not to program Python as you would C, and you'll have a good start.

For the front end, you'll need to spend some time with HTML, and learn a bit of Javascript/jQuery for any dynamic parts. And if you want it to look any good (and you should care about this because people on the web are generally less forgiving of not caring about the looks), you'll also need to figure out how to mimic a graphical style from a designer with CSS. For hobby stuff, you can just mimic some existing designs, if you're doing it as a business you'd probably want to pay someone to come up with the design, or buy a pre-existing one.

It sounds like a lot of work, but Python + Django is actually lots of fun because you can get a lot done in little time (there's a video of someone doing a wiki site in 20 minutes), and the whole front-end thing is also quite fun because a browser is an interactive beast so you can quickly change things around and see things happen graphically.

Re:Work on the basics (4, Interesting)

JaredOfEuropa (526365) | about 3 months ago | (#46034429)

For mobile development, learn about tools, platforms and methods for cross-platform development. And once you master the tools, learn about UI/UX and what makes a great interface on mobile platforms. These are skills in short supply, even in mobile development shops.

Learn the background of languages (1)

Anonymous Coward | about 3 months ago | (#46033931)

I would recommend learning yourself BNF and make a mini compiler, it's a nice pet project. This way you can learn how languages are created and how compilers & interpreters work. After that learning a new language will cost you much less time. For me it worked in such a way that all 'languages' look the same.

As for C also learn a object oriented one and a functional one. java/c# or something. As for the functional one well maybe "Haskell" is a nice one.

Re:Learn the background of languages (4, Interesting)

TapeCutter (624760) | about 3 months ago | (#46034419)

As for C also learn a object oriented one and a functional one

OO syntax in any Turing complete language is just syntactic sugar. If you're a half competent C programmer you will be using OO techniques in any flavour of C. Take another look at K&R, now realise that virtually every code example is also a very good OO design example.

It's 2014 (5, Funny)

StripedCow (776465) | about 3 months ago | (#46033933)

Answer:
Corporate Finance, Intellectual Property Law, Data Mining

Re:It's 2014 (5, Informative)

coastwalker (307620) | about 3 months ago | (#46034055)

Spot on. All those posts advising on what tools to learn are missing the point. The world isn't hiring people with toolboxes, its hiring people who know how to use the toolbox to make stuff. Concentrate on finding the right Stuff to become expert on and you will enjoy your toil and make money doing it.

Sitting in a basement learning how to use a bunch of tools will just see you end up on a production line making dog food. Which is OK if you like the all pervasive smell of dog food I guess, but probably wasn't in your plan for life when you thought that being an Astronaut might be fun.

Re:It's 2014 (1)

serviscope_minor (664417) | about 3 months ago | (#46034261)

might be fun.

Well learning coporate law and finance won't help with the fun thing. To be honest data mining probably won't either.

Learn this (-1)

Anonymous Coward | about 3 months ago | (#46033939)

K&R C

Re:Learn this (1)

rioki (1328185) | about 3 months ago | (#46033963)

I was thinking the same, except mine was:

A programming language for the ages: C11

Re:Learn this (0)

gnasher719 (869701) | about 3 months ago | (#46034141)

A programming language for the ages: C11

Right. If you call yourself a C programmer with 15 years experience, and you don't know C11, then you're outdated. Junk heap.

You should be able to find your way around in C++ code. Even in jobs that are supposedly C jobs, you will run into C++ code. Someone with 15 years of C experience _who is good at it_ will learn C++ in a very short time.

Check out the Stanford iOS programming course on iTunes University. Good introduction to Objective-C which should be relatively easy if you know C, and iOS programming, and I suppose you will learn lots of new things (all the object oriented and event based programming) that will be useful in Android, MacOS X and Windows application programming.

Re:Learn this (2)

mysidia (191772) | about 3 months ago | (#46034461)

Right. If you call yourself a C programmer with 15 years experience, and you don't know C11, then you're outdated. Junk heap.

Bullshit. I code against to the ISO 9899:1999 C99 standard; C89, C99, and C++0x FTW.. No need for anything else.

Re:Learn this (0)

Anonymous Coward | about 3 months ago | (#46033979)

If he was developing embedded systems in C for years, I'm pretty sure he already knows the language quite well.

stem cells heavy breathing marching manners (-1)

Anonymous Coward | about 3 months ago | (#46033965)

never a better time to consider ourselves in relation to genuine creation & it's tech rep. here on earth,,,, momkind, our centerpeace & spiritual beacon

just feeding the millions of starving innocents would keep us all busy for years once we stop pretending & the shooting & bleeding are stoped again when the crown royal mutant 'band of 85' WMD on credit cabalists flee as they always do.... see you there

momkind; new clear options abound (0)

Anonymous Coward | about 3 months ago | (#46034049)

maybe it would serve us to look at the 'new' things we do that we would we be better off not doing? not as complex as having to re-invent everything every quarter to keep the phony #'s happy & us ordinary unchosens falling into spiritual bankruptcy with the analcystic numerologist genociders by proxy still

perfect balance is a fatal illusion (band of 85 WMD on credit cabalers calling the shots) we must live by?

JS and HTML5 (3, Insightful)

Anonymous Coward | about 3 months ago | (#46033983)

By what you said, I guess I would recommend you to start with HTML 5 and Javascript. Both are growing, well stabishled, not very hard to learn and very usefull (for desktop, mobile and even server-side using node.js).
Learning something about OOP is good too. I love Ruby, so that's my first choice. But java and others are ok too.

Good luck.

Universal... (3, Interesting)

Anonymous Coward | about 3 months ago | (#46033991)

Learn to lie and bullshit with a straight face.
These skills can take you everywhere. Even right to the top if you're good enough at them.

Being willing to use people and steal are also good.

Re:Universal... (4, Insightful)

Opportunist (166417) | about 3 months ago | (#46034201)

If you can lie and bullshit people into thinking you know what you're doing while at the same time you can keep talking and talking 'til they believe you based on how they don't have the foggiest idea what you're talking about but can't afford to look like they don't because they think their job depends on understanding you 'cause, well, you're expensive... ...congrats, you're a consultant.

Re:Universal... (1)

mysidia (191772) | about 3 months ago | (#46034497)

Being willing to use people and steal are also good

If you're going into politics yes.

It's more satisfying if you learn to identify lies and bullshit from others, even when given with a straight face.

Even better, if you learn how to use it against the liers and b*s'ers, learn to how to use it to get what you want out of these folks.

Or get a job where you get liers and b*s'ers locked up behind bars, or lay down the fines for their crimes.

Javascript! (4, Insightful)

Anonymous Coward | about 3 months ago | (#46033993)

Learn Javascript. It's everywhere:
* client-side in browsers as little helper fragments attached to buttons, etc
* used for building rich client applications within browsers
* can be used server-side with things like Node.js
* is embedded as a scripting language into various tools

And it's actually not a bad language. The underlying concepts are simple and elegant, although some features for large-scale programming are lacking (no module system, etc).

It's also fun to learn, because you can achieve interesting/amusing results within a browser with just a few lines of javascript.

With some solid javascript knowledge for both client and server-side style code, a lot of job opportunities will open. Learning something like Python is an alternative, but even then employers who look for Python programmers for web-based apps will usually also want javascript skills...

Stick to what you know (5, Insightful)

rodrigoandrade (713371) | about 3 months ago | (#46034001)

You got 15 years experiene writing C code, good luck finding a "whiz kid" who can do it better than someone who's been doing it for that long.

You said it yourself, C isn't going away anytime soon. Stick to it as your bread and butter.

If you want to learn to program for Android/iOS, that's great, but do it as a hobby. Employers nowadays want 10 years experience on a tech that's only been available for 5 years (yes, it's that crazy), so by the time you get up to speed, the market will have already moved on to the next shiny thing.

You started with "It's 2014..." What will you do in 2025? Like I said, when it comes to your bread and butter, stick to what you know best.

Re:Stick to what you know (3, Insightful)

cyborg_zx (893396) | about 3 months ago | (#46034077)

Pretty much - let the hipsters chase the shiny tech. When the littered remains of abandonded technologies is cleared away the old stalwarts will still be there because there hasn't been any *real* innovation in languages for a long time. The basics were invented early on.

Re:Stick to what you know (4, Insightful)

ebno-10db (1459097) | about 3 months ago | (#46034173)

Employers nowadays want 10 years experience on a tech that's only been available for 5 years (yes, it's that crazy)

a/k/a H-1B job listings - meant only to prove that there are no Americans to fill the job. The real disadvantage Americans have is that we have no time portals which allow you to get 10 years of experience with a 5 year old technology. Some other countries are obviously filled with these time portals, as companies are able to find people meeting the job qualifications in those countries.

FWD.US is obviously on the wrong tack with their "think of the children approach", when what we need is a program to make time portals widely available.

Re:Stick to what you know (0)

Anonymous Coward | about 3 months ago | (#46034423)

If it's any help, this is also done in countries with no H-1B equivalent.

Re:Stick to what you know (4, Interesting)

Opportunist (166417) | about 3 months ago | (#46034229)

Someone has a mod and, unlike me, hasn't posted yet? That's about the best answer there is.

If you have experience of 10+ years in a field that isn't, say, Visual Basic or something similar that nobody would willingly touch anymore with a 10 foot pole, cling to it. You're gold, you have 10+ years of C. It doesn't get any better than that.

Instead of trying to reach into some other language or technology, I'd broaden my horizon and delve into other fields that you can combine with your deep C knowledge. Security is currently a big deal, and embedded C almost screams that you should take a shot at physical security and surveillance. I'd take a look into that field (if you're at all remotely interested).

Stick with what you are doing (3, Funny)

PsyMan (2702529) | about 3 months ago | (#46034005)

But learn whatever it takes to webify those embedded systems with utterly pointless interfaces to appeal to the new generation of people who wont even buy a loaf of bread unless it can be monitored by their mobile device. Now, off to the shop to buy toilet paper as my iWipe assroll monitor says that the bathroom is reporting only 3 slices left. Get off my........

-- Which New Technologies Should I Learn? (2, Interesting)

Anonymous Coward | about 3 months ago | (#46034011)

If you want to have more job opportunities learn C#. You will then have a solid base for both mobile development and web technologies. You can also use your C# skill to develop for android using Xamarin Studio (standalone, or there is a handy plugin for Visual Studio) or you can learn Java faster because they have similar syntax and functions (there are exceptions, of course).

Web Development (5, Funny)

Anonymous Coward | about 3 months ago | (#46034035)

So we wont have to put up with this horrible slashdot beta crap.

Learn the backbone (5, Informative)

taikedz (2782065) | about 3 months ago | (#46034053)

In web programming specifically? I'd say, make sure you know the fundamentals first and foremost.

As a previous poster said, knowing the HTTP protocol well (RFC2616 - be familiar with RFCs in general) will be important (more than you'd think - a misused verb led to Google's standard webcrawlers hosing a site because said site didn't implement forms/links properly), I'd recommend also getting intimate with some of the other building blocks such as SMTP, POP, FTP, SSL, ... you get the picture. They'll come in handy when trying to piece together/troubleshoot a larger solution.

On top of that, know the roles and differences between different server apps (app servers like JBoss/WebSphere; web servers like Apache, nginx), know at least 2 popular database engines (I personally favour MariaDB and SQLite but that's up to you; you might want to look at PostgreSQL or CouchDB for something radically different), after learning HTML and XML/DOM fundamentals, know about cookies and AJAX specifically (which are part of your HTTP knowledge, but revisit later) and a take a web security course, or at the very least read far and wide on the matter. Someone suggested focusing only on back-end - fine if that's what you want to do, but at least be aware of how things behave in theory on the front end. Again, fundamentals.

After (all) that (a fortnight's worth of reading, not counting any experimentation?), the choice of languages to work with these building blocks is entirely up to you. Most commonly mentioned are PHP and Ruby in different setups (honourable mention to JSP), Perl and Python for CGI and general scripting, Ruby on Rails as language+framework...

When staring out and for longevity, choose fairly popular languages that run in open source runtimes (they're durable, they're documented, there are plenty of communities), and stay nimble with frameworks - a previous ask.slashdot [slashdot.org] showed how some of them can easily get canned despite a strong user base, and frameworks are just a flavour of the year... more likely than not, someone else (project lead, customer, policy...) is going to tell you what framework to use, so just make sure you've mastered your chosen language set.

For iOS devel you're not going to escape Objective C. Android I understand is purely Java. But most things you're likely to want to do that are web facing, you might as well do in a web page.

And, in general, stay nimble. But you knew that, right?

addendum (2)

taikedz (2782065) | about 3 months ago | (#46034089)

Reading subsequent comments, 2 points stand out

If you know C, and it's not going anywhere soon, why change? Are you bored of the current projects you're on? Or do you think you'll be better off elsewhere? Greener grass etc

Some are being a bit more meta and suggesting fields to apply computing to, like data mining, marketing, etc. Worth investigating if you float that way, but I didn't think that was the point of the question.

You could also consider going into management as a techie, to at least have someone sane at meetings where the majority know more business than technology.

If you already know C ... (3, Insightful)

Viol8 (599362) | about 3 months ago | (#46034059)

... learn C++, Objective C or Java, all of which should cover you for mobile development in one form or another. And if you learn C++ you'll be a bonus to any project that hires you since too many C++ devs these days don't have a clue about low level bit twiddling or memory management - its all frameworks and objects for them without a real appreciation of whats going on under the hood.

If its web you want then HTML5/javascript.

Re:If you already know C ... (1)

Anonymous Coward | about 3 months ago | (#46034139)

Learn how to code discrete ASICs and mine bitcoins.

Re:If you already know C ... (3, Interesting)

ebno-10db (1459097) | about 3 months ago | (#46034219)

if you learn C++ you'll be a bonus to any project that hires you since too many C++ devs these days don't have a clue about low level bit twiddling or memory management

Unfortunately being a potential bonus to a project and getting hired are often two different things. My brother is an excellent C++ bit twiddler as well as knowing the "higher level" stuff. He was out of work for a long time despite that skill. Finally he got a job at a security company where the person hiring him saw an understanding of low level stuff as an important asset. That makes sense as obviously hacking into corporate systems involves a lot of low level twiddling. Maybe my brother's problem is that he was only interested in white hat stuff. You can't make money if you're too ethical.

A few caveats to my pessimistic view. He was looking for work back in 2010 when the economy was even worse than now. Also his degree is in a completely non-CS related subject.

How about the ABC? (1)

Anonymous Coward | about 3 months ago | (#46034067)

ActiveX, BASIC and COBOL.

Re:How about the ABC? (0)

Anonymous Coward | about 3 months ago | (#46034273)

One of those is sadly still relevant due to financial institutions not moving from legacy tech.

Re: How about the ABC? (0)

Anonymous Coward | about 3 months ago | (#46034463)

Legacy tech? So you want your bank to use an insecure iOS cloud (insert shiny buzzword here) instead of a rock solid tried and true mainframe running cobol?

2014 = Let Java die. (0, Flamebait)

Dan Askme (2895283) | about 3 months ago | (#46034069)

Its time to let Java/Python/Ruby die.
In a world of energy efficiency, its time you pulled your weight.

Think of the end users performance, think of the energy it costs to run your application.
Learn C++ instead. Stop being a selfish "wannabe". Make the world a better place.

Java = var lookatme = 640000000;
C++ = unsigned long lookatme = 640000000;

It really isn't that hard guys...

Re:2014 = Let Java die. (2, Funny)

Anonymous Coward | about 3 months ago | (#46034269)

Java = var lookatme = 640000000;
C++ = unsigned long lookatme = 640000000;

It really isn't that hard guys...

Apparently it is, because you just wrote some JavaScript instead.

C++ = unsigned long lookatme = 640000000; (1)

bunbunbun3 (754196) | about 3 months ago | (#46034509)

Surely it should be javascript:

var lookatme = 640000000;

c++

auto lookatme = 640000000;

mobile devices. (3, Insightful)

hooiberg (1789158) | about 3 months ago | (#46034085)

Make sure not to mistake 'technologies' for 'programming languages'. For now, I would say programming on mobile devices. Now that many people have mobile phones with apps and all that, and tablets becoming fairly popular. Learn what has to be taken into account with mobile device architectures, and learn the languages used to program on them.

HTML, CSS, JavaScript and progressive enhancement (5, Informative)

magic maverick (2615475) | about 3 months ago | (#46034095)

If you are already a programmer, or even if you're not, then there are three technologies that you should attempt to learn (or at least recognize and be able to say "yeah, OK, this makes a sorta sense"). These are HTML, CSS and JavaScript. HTML is the basis for web pages. It is what they are built upon. I suggest starting with HTML 4.01 (strict) and XHTML 1.1 (there are major differences that may not look like being major), and then moving onto HTML 5 (yet to be fully finalized). The older HTML should teach you some good habits, as should the XHTML (and while you're looking at XHTML, learn what XML is, and why XHTML exists). Then you need some style to make your pages look pretty. That means CSS. CSS is broad, and you can just learn the basics and pick up the more complicated stuff as you go along. (That basically means start with CSS 2, and learn "CSS 3" modules as and when you need them.) CSS is capable of doing a lot of stuff that previously required JavaScript.

JavaScript is not an essential. But you should know the basics. And most importantly, you should know two things, when not to use JavaScript, and what progressive enhancement is. (Progressive enhancement might also be called graceful degradation. It's basically the same thing, in the way that Open Source Source and Free Software are basically the same thing. There are philosophical differences, but they still do mostly the same thing.)
---
And that's the web. Finished. You can go home now.

Oh, still with me? Yes, there is still more to learn. Learn PHP. "But I heard it's awful" you cry. And it may well be. But it's also probably the most popular backend web language. It's what major and widespread software is written in. WordPress, MediaWiki, Drupal, and others are all written in PHP. But, like with JavaScript, unless you want a job, you don't need to learn more than the basics. There are great docs that can help you with almost anything.

Similarly, learn SQL if you don't already. If you're learning PHP from scratch, use the PDO functions, then you can easily switch databases (and not be stuck on MySQL).
Also, learn how to wrangle an Apache .htaccess file, and especially redirects.

Next, I hear Ruby is getting a lot of press. Maybe learn some of that, and Ruby on Rails.
---

Finally, and this is more important than Ruby on Rails, make sure you don't get hung up on pages looking the same in every browser. But do learn the fuck out of how to test in different browsers, and on different devices. And test the fuck out of your pages in different browsers. If you're page isn't readable in Lynx, maybe you need to do some reconsidering.

Re:HTML, CSS, JavaScript and progressive enhanceme (3, Informative)

magic maverick (2615475) | about 3 months ago | (#46034125)

Oh, and I should have mentioned (and others have already), you also should learn at least the basics of the various protocols. You should be able to recognize the various parts of a HTTP message, and know what most of the verbs (e.g. PUT, POST, GET) and codes (e.g. 200, 404, 408) mean. You should know how HTTPS works (and for bonus points, know at least two major flaws with it). And you should know what TCP/IP means (and if you're really good, how they work), what DNS and DHCP are, and so on.

Good luck.

Re:HTML, CSS, JavaScript and progressive enhanceme (0)

Anonymous Coward | about 3 months ago | (#46034373)

Ummm........ Starting with HTML 4.01 and CSS 2?

Why not the start learning PHP too, from version 3 or something?

Start learning from the most up to date version you can find. Then you don't have to relearn stuff later on when they have changed in future versions!

creepshow nazi style censorship 'tech' (-1)

Anonymous Coward | about 3 months ago | (#46034101)

Slashdot only allows anonymous users to post 10 times per day (more or less, depending on moderation). A user from your IP has already shared his or her thoughts with us that many times. Take a breather, and come back and see us in 24 hours or so. If you think this is unfair, please email posting@slashdot.org with your MD5'd IPID, which is not here. Let us know how many comments you think you've posted in the last 24 hours.

nothing new in centuries free the innocent stem cells trust that you can help us become creational once again

http://a5a-games.blogspot.com/ (-1)

Anonymous Coward | about 3 months ago | (#46034103)

http://a5a-games.blogspot.com/

C for mobile. (0)

Anonymous Coward | about 3 months ago | (#46034111)

You can do most things in ios with plain old c and a sprinkle of objective C. I eould go about doing that if I were you.

Languages are not technologies. Yet you might want (1)

vikingpower (768921) | about 3 months ago | (#46034119)

1) JavaScript. And one of the technologies building up on it, or improving it. Google V8 seems a good candidate 2) Some new, web-oriented programming language. Try Dart.

You should know a minimum about databases. RDBMSes are going to die, so learn how to interact with one of the major no-SQL databases. Apache Cassandra is a good starting point. So are MongoDB and Couchbase / CouchDB. The most bleeding-edge ones are Titan and neo4J, both graph databases.

Godspeed !

Re:Languages are not technologies. Yet you might w (1)

Daniel Hoffmann (2902427) | about 3 months ago | (#46034159)

By learning CouchDB / Couchbase you get some javascript and JSON experience as a bonus.

Also, XML is dying, long live JSON.

Re:Languages are not technologies. Yet you might w (0)

Anonymous Coward | about 3 months ago | (#46034475)

> RDBMSes are going to die

keep dreaming...

C++11 (2, Informative)

speps (1108625) | about 3 months ago | (#46034163)

I think given the momentum C++ has right now (for better or worse, I can't say yet) you should try to learn C++11 and all the new tricks that come with it. It's a pretty different experience from C and C++98 in my opinion. Watch this for a nice roadmap and insights : http://channel9.msdn.com/Event... [msdn.com]

Expand what you already know. (4, Insightful)

GauteL (29207) | about 3 months ago | (#46034175)

Unless you are simply passionate about web technologies and just really want to work with it, stop trying to chase the latest and greatest here. You will find it remarkably hard to compete for the Javascript/web/whatever jobs as the 20 year old wizz-kids will have more experience than you in web-stuff but will probably need much less money.

Instead focus on improving what you already do, and expand into new areas of the embedded sphere. All that fancy web tech will in the end use and require embedded devices. We will get many more embedded devices, rather than fewer of them. Furthermore, try to expand your embedded domain knowledge. Perhaps there are some really exciting new embedded devices (drones, wireless home management devices, etc) you'd enjoy working on as a hobbyist? Expand into other embedded languages as necessary to work on the range of devices you like (i.e. Objective-C if you want to write iOS apps). You will only really learn properly if you have something concrete you want to do anyway.

The point is; unless you hate what you're doing, you should work on ways to make all those 15 years of embedded experience count. Chasing some Javascript web-stuff will not achieve that.

Internet of things (0)

Anonymous Coward | about 3 months ago | (#46034233)

Leverage your C skills in the context of the internet of thing. It potentially touches an order of magnitude more devices over time than mobile.
Learn some web/distributed systems skills (javscript, html, http, rest/soap) so you can understand/integrate well into the current webby context.

The "cloud" (2)

pla (258480) | about 3 months ago | (#46034237)

First, a disclaimer: Yes, I understand that the "cloud" means nothing more than playing Buzzword Bingo with the same old crap hosted by someone else, with a shiny new billing model that lets the service providers rub their hands while cackling with glee over all the idiot CEOs out there willing to pay more for what they don't recognize as the same ol'.

That said, if your resume says you've worked in the trenches with VPSs and hosted solutions, you can expect the HR drone's eyes to glaze over because it doesn't match any of the buzzwords on their pre-screening checklist. If, however, you say that you've "Deployed critical corporate assets to the Azure cloud", well now, you may well have yourself a job!

Just make sure when you actually get to interview with a real IT manager, you know the difference between the PR bullshit and reality; the pain of trying to integrate between different "clouds" you don't control; how to code in C# and Javascript and SQL. The rest just gets you in the door, you still need to do the same old job as ever.

Hmm (1)

nightsky30 (3348843) | about 3 months ago | (#46034245)

Android for mobile and javascript, node.js w/ express, bootstrap, and many other node.js modules for web development :)

no particular order (0)

Anonymous Coward | about 3 months ago | (#46034255)

Systems: redis, riak, mongodb, git, svn, mariadb, postgresql
Languages: ruby, node.js, php, python, java, javascript, html5

you probably know half that stuff already and have a good foundation to start the rest

never learn anything just for the sake of learning (4, Insightful)

Tom (822) | about 3 months ago | (#46034271)

Check if there's a Free Software project you're interested in, or you have a project of your own that would benefit.

Learning is one thing, practical experience is what matters. So unless you actually use those skills, they are close to worthless. And learning and using something is a lot easier if it is linked to something that matters to you.

Web and mobile technoligies worth looking at (2, Informative)

Anonymous Coward | about 3 months ago | (#46034293)

I'd caution you first to take a good look at this article by Jeff Atwood (http://www.codinghorror.com/blog/2008/01/the-magpie-developer.html) discussing what he calls "Magpie Developers" - developers that flock to new shiny things just because they are new and shiny,

Once you've taken a look over that, here's my take on web and mobile technologies.

You are going to have to learn JavaScript for the purposes of front end development. You should also learn the principles of responsive web design and graceful degradation to produce web sites that look good on mobile. That obviously means a through understanding of HTML and CSS as well, which although not "programming" per say, are important technologies nonetheless.

On the back end, Python and Ruby on Rails still have a lot of traction. node.js is rapidly gathering popularity as well, and since you already have to know JavaScript for front end work.it can make sense to use it on the back end also. All three of these have substantial following and demand on the market.

PHP is on the way out, but still used, and probably not going away. It's main "advantage" is that it's the only thing that works on the numerous "bargain basement" web hosts that people still use for some crazy reason, and therefore, there's still a lot of applications, content management systems, and frameworks written in PHP. WordPress in particular comes to mind - a lot of smaller projects are just slapping some custom application on top of a WordPress CMS, since that's what the organization is familiar with.

Now. for the subject of Mobile app development. Mobile apps can be important, but not every site should be an app.. Being able to articulate this to an employer is important. They may think their mom and pop online store needs a mobile app. They don't. They need a website that works well on mobile. A mobile app can supplement that, but it can't replace it. Users want apps to do things that are absolutely indispensable to them, not a screen full of icons for 200 different companies. Don't make the mistake of letting "oh, just download our app" be a substitute for poor mobile web design - for something that a user should have been able to easily do or find out in their mobile browser, they are likely to just go elsewhere instead. Similarly, don't make the mistake of thinking good web design = good app design. An app and a site are two different things.

For iOS development, Objective-C is the way to go (and as far as Apple is concerned, the ONLY way to go). There are other technologies now that can produce iOS apps, but in the past Apple has made a big fuss and big show of banning or breaking other tools, I seem to recall them even going so far as to ban apps because of the environments used to develop them. This has relaxed somewhat lately, but there's no telling if they might do it again. Objective-C should be a smooth enough transition from C for you though.

For Android, it's more or less a variant of Java, although there are ways to develop in other languages, including C and C++. There's pretty broad selections of tools available for you. Fragmentation is still a very real problem, but it doesn't have to be as big of a problem as it's made out to be - you just have to be aware of it and plan around it - it's not unlike the problems of responsive web design (although progressive enhancement is probably preferable to graceful degradation for apps)

The other mobile platforms right now lack enough market share for most apps to worry about native development - develop a proper responsive website, and pay attention to make sure that it actually works, and you won't leave the Windows Mobiles and Blackberries of the world out.

The correct answer: (1)

Anonymous Coward | about 3 months ago | (#46034345)

Windows 8 !

Soulskill is not really interested in the asnwer (1)

matbury (3458347) | about 3 months ago | (#46034351)

With all due respect, I don't think Souskill is interested in the answer to his question. If you really want to know what's in demand, look at job descriptions on job boards. I think he's more interested in /. readers' reactions to the question and opinions of the different client and server scripts/languages. Makes for an interesting discussion, does it not?

Internet of things (1)

jrumney (197329) | about 3 months ago | (#46034357)

As there seems to be quite a buzz around the "internet of things" right now, why not leverage your existing expertise by focusing on that rather than mobile and web. Focus on web services rather than web pages, familiarize yourself with HTTP rather than HTML and stick with C and maybe Java and Python (a lot of "embedded" devices are running Linux under the hood and some Android, and other uses of Java such as Bluray get embedded) as higher level languages that are less stressful to code networked apps in than pure C or even C++.

Rust (1)

ChunderDownunder (709234) | about 3 months ago | (#46034367)

If I knew C back-to-front and wanted to get into 'web development', I'd be sending my CV into Mozilla and getting a job on the rust/servo teams.

They're constructing a systems language to rebuild firefox from the ground up.

The ones that make you competitive (1)

onyxruby (118189) | about 3 months ago | (#46034427)

You have to learn the technologies that make you competitive in the job market. Your competition isn't the guy down the street, it's the guy in India or other like countries. You have to substantially market yourself against someone that could be making as little as 1/6th what you make now. In order to do that you have to have the skills that they can't bring to the market or that they don't tend to have. Any type of skills that requires personal presence is well worth adding.

Any skills that could be commoditized by and large have been by the likes of IBM to feed their outsourcing work. Remember that they focus on training up people for outsourcing and tend to stick to basic skills that can be marketed across a wide range of contracts.

If you really want to know what to focus on just go to the Indian versions of Monster, Dice and see what is in demand. Find what isn't in demand there but is in demand locally and is difficult to outsource. Specialist jobs are good for this as are consulting jobs as they are difficult or not worth the effort to outsource to India.

If you have a generic resume that only contains basic skills in wide usage you are extremely vulnerable to outsourcing. You will also have a difficult time landing a job once you have a few years experience and aren't fresh kid out of college cheap.

'tis a Smorgasbord (2)

Joshua Bell (3509105) | about 3 months ago | (#46034473)

The caveat to the rest of this is that I'm somewhat new to the web development frontier. (a yearish of unpaid experimentation)

Having said that here are a few technologies/languages that I find highly useful, perhaps you will too.

Redis [redis.io] , everyone needs a cache/queue, if someone says otherwise they're lying to you. The really cool part about redis is that operations done with it are (mostly) atomic at the operating system level, and it has persistent records of transactions, which sets it far apart from its other competitors. Redis is something I would use in any sort of web application backend.

At least one of: rails [rubyonrails.org] /vibe.d [vibed.org] /yesod [yesodweb.com] /spray [spray.io] . These tools, while not ideal solutions, are extremely useful for maintaining separation of concerns, as well as rapid prototyping, I would consider knowing some framework essential.

Ember.js [emberjs.com] /angular.js [angularjs.org] are both javascript frameworks that are extremely powerful, the necessity of these increases with the more interactivity you want, they're probably a bit overkill for most webapps, but I'd definitely recommend looking into one of these at some point.

Foundation [zurb.com] /Bootstrap [getbootstrap.com] are frontend frameworks for easily organizing the layout of your pages and styling them, again, for simple projects these will probably add more complexity than necessary to the project, but these are another thing I would consider essential.

Postgresql [postgresql.org] is a rdbms similar to Oracle that has very powerful/fascinating features that no other db system has such as hstore [postgresql.org] which is essentially a key value store that allows you to input whatever in a column, which is great for unstructured/semi-structured data (e.g. user uploads). Mongo can't beat an ACID compliant json store. ;)

I could go on for a while in this direction, but I hope this helps.

Personally, I use rails/ember/foundation for frontend stuff and use spray/redis/postgres for the backend, they seem to fit my workflow the best and solve the problem at hand the most effectively.

None of the Above (1)

RotateLeftByte (797477) | about 3 months ago | (#46034479)

There really is no future in IT. The bubble has burst and Everything 'IT' is in danger of becoming just another commodity.
If you aren't already a manager then just don't bother.

Take up a new career NOW before it is too late.
I've been writing software for 40 years ranging from cobol on Punched Cards through C, C++ , Java and onto to more modern things like Ruby, PHP and NOSQL.
I'm just hoping that I can hold on and keep employed until I retire in a couple of years.

Or you could slap on some makeup and pretend to be an H1B Visa holder. I'm sure you will get a job quickly but you will have to drop your salary expectations but hey, at least you are still employed.

Learn Plumbing (0)

Anonymous Coward | about 3 months ago | (#46034481)

Become a qualified Plumber.

1) Your work can not be off-shored
2) There are no H1B visas for Plumbers
3) Weekend working is tax free
4) Meet bored lonely neglected housewives
5) Increasing demand due to rising sea levels

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...