Slashdot Mirror


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

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?"

387 comments

  1. HOW TO CLOSE A BRIDGE WITHOUT GOING TOO FAR !! by Anonymous Coward · · Score: 0

    Or, how to not get caught !!

  2. Learn the basics by Anonymous Coward · · Score: 5, Informative

    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!

    1. Re:Learn the basics by Opportunist · · Score: 2

      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.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    2. Re:Learn the basics by Ash+Vince · · Score: 4, Informative

      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.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    3. Re:Learn the basics by Hal_Porter · · Score: 2

      You can bullshit HTTP. Just learn GET and POST and learn a speech about what 'idempotent' means. Once you explain that most people's eyes glaze over, so you can skip the rest.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    4. Re:Learn the basics by digitalchinky · · Score: 3, Insightful

      Correct. But, you could flip that around and ask yourself how many times during the last decade or so have you done things the harder way, or reinvented the wheel, because you didn't understand HTTP headers well enough to leverage existing functionality?

      I write medical imaging software, most MR / CT studies have anywhere from one to a few thousand images, every server call you can avoid makes for a happy radiologist. This might mean wedging various DICOM fields in the headers when thumbnails are downloaded so you can rapidly populate the UI, build up annotation layers, sort thumbnail stacks, all kinds of cool stuff.

    5. Re:Learn the basics by Urkki · · Score: 2

      These days, Javascript is the hot backend technology, which is convenient when it's also the leading (and only future-proof) front end technology of its type (programming language).

      Seriously, if you have not already, give node.js a spin if you do any Internet-related development work. And I don't mean anybody should necessarily start using it, just that it is something to know today.

    6. Re:Learn the basics by Opportunist · · Score: 4, Insightful

      As a C programmer, I had to descend into the depths of ASM about twice in the decade I have been developing. But KNOWING about it sure helped me avoid stack overflow security errors, mostly because I knew just why they pose a security threat.

      The point is not that you have to USE it. The point is to know about the basics to understand WHY you do some of the things you do the way you do them. Rote programming is one of the problems of our times, where programmers do stuff a certain way because they were taught to do it that way without understanding the basic idea behind the reason to do it that way.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    7. Re:Learn the basics by Jane+Q.+Public · · Score: 1

      "These days, Javascript is the hot backend technology, which is convenient when it's also the leading (and only future-proof) front end technology of its type (programming language)."

      JavaScript was the "hot" back-end technology about 4-5 years ago. In that time, most devs have concluded that it's not so hot after all.

    8. Re:Learn the basics by Anonymous Coward · · Score: 0

      You may want to take your own advice. RFC2616 has no mention of "verbs". You are referring to "methods". The term "verbs" is used primarily when referencing a REST API. The HTTP protocol is much more involved than methods(verbs).

    9. Re:Learn the basics by Anonymous Coward · · Score: 0

      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.

      Mobile computing is not well-suited for data warehousing or heavy computation. You will need to create or use APIs as soon as your application needs to communicate with a server. Ideally, you would use a RESTful service (such as HTTP) to minimize network traffic between mobile devices and the services that they leverage.
      If you're building a self-contained application like a calculator or if you're on a team and are not responsible for the data access layer, then sure. Skip it.

    10. Re:Learn the basics by Anonymous Coward · · Score: 0

      Correct. But, you could flip that around and ask yourself how many time during the last decade or so have you done things the cumbersome way, or reinvented the wheel, because you wanted to take advantage of HTTP headers rather than simple HTML features?

      Your wedging of DICOM fields into headers sounds cool until you realize an encoded binary in an inline css field serves the exact same purpose. All kinds of cool stuff already exist, it just comes down to code managability. Your headers trick sounds cool but also sounds like a huge waste of time for your successor and peers

    11. Re:Learn the basics by tlhIngan · · Score: 1

      Or ... don't learn about technology. If you're interested in it, you'll learn anyways.

      Instead, learn how to improve yourself as a person. Do you know how to speak to customers? Or do you cordon yourself off?

      "Soft skills" are extremely important, probably more so than technical skills. Technical skills can be learned. But soft skills require training and practice.

      Learn skills like sales and marketing - learn what they do, and how they do it, and how you can best ensure that your future doesn't rely on them making over-the-top promises.

      Or learn how to communicate with other people. Being able to talk technical is good when dealing with your peers, but how do you talk to the salespeople? Is it likely they misunderstand you?

      Learn about management. Perhaps learn project management and how to deal with conflicting priorities, dealing with what management wants and what they don't need.

      Learn about business - how your company operates, what all the numbers mean. Take up accounting and learn why things are done in certain ways.

      Technical skills are easy. Soft skills will help you become a more valuable employee. You may be able to write the next OS kernel blindfolded, but if everyone goes to the new guy because he's easy to approach and gives reasonable answers, well, your days are limited. But show you know your stuff, and show that you empathize with others, and suddenly you're the invaluable person.

      We run into it all the time - management who fail to understand why we need something or have to do stuff this way because of security concerns. Being able to speak "their language" can make it easier for you to explain your concerns and head off the next security breach.

    12. Re:Learn the basics by Zenin · · Score: 2

      Seriously, if you have not already, give node.js a spin if you do any Internet-related development work. And I don't mean anybody should necessarily start using it, just that it is something to know today.

      Here's all you need to know to day about node.js: Node.js Is Bad Ass Rock Star Tech

      --
      My /. uid is better then your /. uid
    13. Re:Learn the basics by Anonymous Coward · · Score: 0

      FPGA's, java , verilog, vivado because mobile market is running android and IOS, and hardware technology is moving to run software faster and faster.

    14. Re:Learn the basics by Anonymous Coward · · Score: 0

      Let's take a term that's been used since the dawn of the web, "Method". Replace it with some other random term "verb". Then we can tell well seasoned experts that they are unqualified amateurs because they haven't heard your latest rename of preexisting technology. See JSON as another example.

    15. Re:Learn the basics by Anonymous Coward · · Score: 1

      The reality is that you can actually be a dam successful web developer without having a clue what an HTTP Verb is

      I think something similar was said by the developers of the web-apps that made the news because the Google spider bot, in making read-only GET requests, wiped out their entire database one delete button at a time...

    16. Re:Learn the basics by DarwinSurvivor · · Score: 1

      JavaScript was the "hot" back-end technology about 4-5 years ago. At that time, most devs have concluded that it's not so hot after all.

      FTFY

    17. Re:Learn the basics by znrt · · Score: 1

      you would use a RESTful service (such as HTTP) to minimize network traffic

      REST services may reduce your server load (by simply not caring about state), and have other nice architectural benefits, but in no way reduce network traffic per se. a poor design can even imply an increase. in fact REST as transport is anything but efficient, it is ridiculously bloated if compared to binary transfer, for example.

      i'm guessing you are comparing REST to the overhead of primitive web pages, but that comparision makes no sense, you really don't need REST to build an efficient single page navigation webapp. besides, it's perfectly possible to build a network inefficient webapp with REST, and many of them indeed are. that's because the more technology and resources are available, the less developers do care (or even know) about efficiency, and believe that "RESTful" somehow is some alien magic for efficiency.

    18. Re:Learn the basics by Urkki · · Score: 1

      So, what has taken the place of "hot" rising web backend tech from Javascript / node.js?

      Also, I think node.js is the first really mature(ish) JavaScript web server, and first release was less than 5 years ago, and integration of package manager was later still, which I consider a requirement for "hotness" on anything which depends on extensibility through modules. So your timeframe of 4-5 years is off no matter how you look at it.

    19. Re:Learn the basics by Rival · · Score: 1

      These are good points.

      Also, new technologies are highly overrated. 98% of them will go by the wayside in a few years, and you don't want to waste your time becoming an expert in the newest square wheel.

      Understand now that your learning ability will not last forever, and there will always be someone coming in after you that management will see as more valuable later on because they know #Whizbang 20x6 and you don't. So when that day comes, and come it will, what skills do you want to have?

      As the parent said, soft skills are helpful, as are business and management. These can be useful to you because they age gracefully and migrate well between fields. If that's the sort of thing you want to be doing when you're "older", great. If not, what is?

      I personally am enjoying learning older technologies, such as Spencerian handwriting, astronomy and land navigation, cooking well with simple ingredients, and other things that have been around for a very long time. I'm not doing it to help my career, but to make me happy. The fact that I'm happy probably shows in my daily life at work, which may help my career, but that's a side benefit. I'm mostly looking forward to having fun stuff to do if and when I can afford to quit working with computers for a living.

    20. Re:Learn the basics by Jane+Q.+Public · · Score: 1

      I wasn't trying to slam Node.js. It's okay technology and there are a lot of people using it. I just haven't seen much excitement surrounding it in the last couple of years, and I know of at least a couple of outfits that dumped it for other technologies.

      That isn't a criticism either; people do that kind of thing all the time, with just about any technology. But I just haven't been seeing much "hot" around back-end js these days.

    21. Re:Learn the basics by rakslice · · Score: 1

      For the record, I think my text search is broken; I can't find the word "verb" there anywhere. =)
      http://www.ietf.org/rfc/rfc261...

    22. Re:Learn the basics by Urkki · · Score: 1

      JavaScript was the "hot" back-end technology about 4-5 years ago. At that time, most devs have concluded that it's not so hot after all.

      FTFY

      The real-world use of Javascript in backends 4-5 years ago was quite different from its use today. So any conclusion drawn "at that time" 4-5 years ago is not trustworthy today, and anybody clinging to that old conclusions is in the wrong field. You might still come to essentially same conclusion today, but it would have to be a conclusion from today's state of things, not state of things 4-5 years ago.

    23. Re:Learn the basics by the_arrow · · Score: 1

      To take this even further, why not learn something completely unrelated? Like, say, playing an instrument or painting? Or spend the time you were going to learn to write a novel instead.

      Just do something you would never normally do, something that gets your thoughts away from the day job and anything related.

      --
      / The Arrow
      "How lovely you are. So lovely in my straightjacket..." - Nny
    24. Re:Learn the basics by Half-pint+HAL · · Score: 1

      JavaScript was the "hot" back-end technology about 4-5 years ago. At that time, most devs have concluded that it's not so hot after all.

      FTFY

      If you're going to correct someone's English, do it right. Because now you look like a fool.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    25. Re:Learn the basics by DarwinSurvivor · · Score: 1

      First of all, it wasn't even "hot" then, it was the equivalent of the no-sql servers today (lots of talk and advertising, few actual professional users). Script kiddies and amateur web developers jumped at it because it was about the only language they knew already anyways. Personally, I wouldn't use javascript for anything if I had the choice.

    26. Re:Learn the basics by Half-pint+HAL · · Score: 1

      Or ... don't learn about technology. If you're interested in it, you'll learn anyways.

      Digging the logic there. How about... don't read Slashdot. If you're interested in it, you'll read anyways.

      You get my point, I hope...

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    27. Re:Learn the basics by Half-pint+HAL · · Score: 1

      Also, new technologies are highly overrated. 98% of them will go by the wayside in a few years, and you don't want to waste your time becoming an expert in the newest square wheel.

      Yes, but the technologies all embody certain concepts and paradigms, and the useful language to learn is the one that teaches you the most about the specific problem domain. Python, for instance, is a general purpose programming language and teaches nothing about the web -- all its web features are tacked on via libraries. This means it doesn't teach "web thinking". Sadly, this is probably true of most web technologies, as they were mostly written by C coders....

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    28. Re:Learn the basics by Anonymous Coward · · Score: 0

      Then we can tell well seasoned experts that they are unqualified amateurs because they haven't heard your latest rename of preexisting technology. See JSON as another example.

      I'm a neophyte when it comes to JavaScript, so in all humility can I ask... what is JSON a renaming of?

    29. Re:Learn the basics by Urkki · · Score: 1

      I don't know about your practical experience on server side Javascipt, but a lot of the comments like yours sound like you're thinking of client side Javascript, with parts embedded in a HTML page, and hacked together by a non-programmer designer.

      Server side Javascript is nothing like that.

      Or if it's the Javascript syntax you're allergic to, that's a solved problem (with Coffeescript or Typescript).

    30. Re:Learn the basics by DarwinSurvivor · · Score: 1

      Coffeescript looks just as bad from a syntactical point of view.

      Typescript (from my brief check) does look much better, but I fail to see the usefulness of it. On the client side you now have to hope that Typescript is ensuring that it generates Javascript that works on all versions of all browsers because making per-browser adjustments become very difficult when you add that kind of abstraction layer. On the server side (where you can run just about anything you like) I just don't see the point of using a designed to make Javascript look like another language when you could just use that other language in the first place. The only justification I can see for it (on the server side) is if you have a penchant for some part o fthe Node.js framework or need to convert an existing Node.js with minimal back-end changes. They've literally written a new language so you can use an old language without actually having to use the old language...

  3. Work on the basics by mozumder · · Score: 5, Informative

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

    Objective-C for iOS.

    Those will keep you employed for the next 10 years.

    1. Re:Work on the basics by crutchy · · Score: 5, Insightful

      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

    2. Re:Work on the basics by Anonymous Coward · · Score: 0

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

    3. Re:Work on the basics by Anonymous Coward · · Score: 4, Informative

      And Java, for Android development.

    4. Re:Work on the basics by Spy+Handler · · Score: 5, Interesting

      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.

    5. Re:Work on the basics by gbjbaanb · · Score: 2

      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!

    6. Re:Work on the basics by VortexCortex · · Score: 5, Funny

      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.

    7. Re:Work on the basics by cyber-vandal · · Score: 1

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

    8. Re:Work on the basics by Daniel+Hoffmann · · Score: 5, Funny

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

    9. Re:Work on the basics by Opportunist · · Score: 3, Funny

      C'mon, if you're trying to go alpha-geek on us, at least say that C is the 10th letter of the alphabet.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    10. Re:Work on the basics by Anonymous Coward · · Score: 1

      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.

    11. Re:Work on the basics by Anonymous Coward · · Score: 0

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

    12. Re:Work on the basics by mysidia · · Score: 4, Funny

      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.

    13. Re:Work on the basics by Anonymous Coward · · Score: 0

      cardinal / ordinal - learn it.

    14. Re:Work on the basics by mysidia · · Score: 1

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

      Actually... C is a single digit representing a shorthand for 00001100.

    15. Re:Work on the basics by Daniel+Hoffmann · · Score: 1

      This lane of thought could be easily translated into a xkcd strip.

    16. Re:Work on the basics by marcroelofs · · Score: 0

      Except I wouldn't recommend tying my future to Apple.

    17. Re:Work on the basics by olau · · Score: 4, Insightful

      Python is a really nice language. For a Python backend, you could start with the Django tutorial. 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.

    18. Re:Work on the basics by ChunderDownunder · · Score: 0

      C is 12 in decimal.

    19. Re:Work on the basics by gbjbaanb · · Score: 0

      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.

    20. Re:Work on the basics by JaredOfEuropa · · Score: 4, Interesting

      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.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    21. Re: Work on the basics by arielCo · · Score: 5, Funny

      C is for Cookie, and your browsers store them for me! (Omnom nom, nom)

      --
      This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
    22. Re:Work on the basics by cyber-vandal · · Score: 1

      What ideas did they "steal" from RoR and what is a Rails way as opposed to a .NET way? Where do you put your business logic and db connection code in RoR if not on the web server? What's the difference between a web GUI on RoR and one on ASP.NET?

    23. Re:Work on the basics by Anonymous Coward · · Score: 0

      Arrg. The element at index 0 is still the first element.

    24. Re:Work on the basics by Anonymous Coward · · Score: 0

      L*i*ne of thought, you rubberlipped goofball.

    25. Re:Work on the basics by dkleinsc · · Score: 5, Funny

      Actually, most developers and a lot of systems I encounter use a character encoding that they say is UTF-8, but actually kinda uses ASCII. This causes all sorts of interesting issues, which is why I've dubbed this encoding WTF-8.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    26. Re:Work on the basics by Anonymous Coward · · Score: 2, Insightful

      Which really just means that he posts things that go against the groupthink so prevalent here. It's why I post anonymously now. It seems that anyone not interested in a self congratulatory circle jerk is expeditiously shoved in a corner on this site.

    27. Re:Work on the basics by Grishnakh · · Score: 1

      And while you're at it, don't forget to learn to work in CMMI5 and Agile/Scrum environments.

    28. Re:Work on the basics by Elros · · Score: 1

      This line of thought should be translated into an XKCD strip.

    29. Re:Work on the basics by Anonymous Coward · · Score: 0

      X'C3' for me.

    30. Re: Work on the basics by Anonymous Coward · · Score: 1

      C is 100. We Romans were here first

    31. Re:Work on the basics by mrbluze · · Score: 2

      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.

      Sounds easy.

      --
      Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
    32. Re:Work on the basics by Anonymous Coward · · Score: 3, Informative

      Actually, this line of thought was translated into an XKCD strip.

      https://xkcd.com/1318/

    33. Re:Work on the basics by Anonymous Coward · · Score: 0

      I run into WTF-8 all the time; thank you for giving it a good name!

    34. Re:Work on the basics by Anonymous Coward · · Score: 0

      Obviously not, C is 0x43 in ASCII. Who knows what he's using.

    35. Re:Work on the basics by Bill_the_Engineer · · Score: 1

      It used to be 0o303 (0xC3) letter in the alphabet I used (EBCDIC). Now get off my lawn!

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    36. Re:Work on the basics by taiwanjohn · · Score: 1

      The word "third" specifically is an ordinal. The cardinal form in English would be "#3" instead.

      --
      XML is like violence. If it doesn't solve your problem, you're not using enough of it. --AC
    37. Re:Work on the basics by taiwanjohn · · Score: 1

      Unless you're using a zero-based array, in which case it would be "#2" instead.

      --
      XML is like violence. If it doesn't solve your problem, you're not using enough of it. --AC
    38. Re:Work on the basics by Anonymous Coward · · Score: 0

      PretendSCII-8

    39. Re:Work on the basics by njnnja · · Score: 2

      This. I write a lot of modeling algorithms in c++ but to make it useful to the team where I work I wanted to develop a front-end/gui. I learned python/django and now I can get a basic front-end working in about a day. Add javascript/jquery/a commercially available javascript UI library or two for "spreadsheet-like" tables and twisties and such and you can have a very complex system with a nice UI that you understand from front to back.

    40. Re:Work on the basics by Anonymous Coward · · Score: 0

      YES. YES YES.

      It has a few downsides, but now that I have been using Objective C to develop iOS apps for the past two years, I really enjoy it.

      Go onto iTunes University and watch the Stanford iOS development videos and follow along at home.

    41. Re:Work on the basics by gbjbaanb · · Score: 1

      put your DB connection on a separate service layer, so if (ha! when) someone hacks your web server they cannot simply create a DB connection and select all the data they want out of it.

      That these web frameworks try to be an all-in-one solution is why there's so many high profile data thefts.

      when writing a website, assume from day 1 that your web server has already been hacked. There are enough zero-day exploits being found to mean its probably true anyway.

    42. Re:Work on the basics by Anonymous Coward · · Score: 0

      WatiN is obsolete and hasn't been actively developed since 2011. Use Selenium.

    43. Re:Work on the basics by Anonymous Coward · · Score: 0

      I like how you went out of your way to bash javascript and phython, but completely neglected the obligatory bashing of php. For shame. For shame.

      For my money, I'd pull Python out from under the bus and replace it with ruby, then back over it a few more times to be safe. Python seems to have replaced the niche that Perl occupied for a long time on systems, and I think we are mostly better for it. Though, I still miss the poetry of the perl monks.

    44. Re:Work on the basics by Bill,+Shooter+of+Bul · · Score: 1

      I approve of this Bill's message. Now if the new kids would update their documentation so they actually specified ASCII when they wanted ASCII instead of leaving it documented as EBCDIC.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    45. Re:Work on the basics by angel'o'sphere · · Score: 1

      TBH, I know enough people who master 80% of that good enough, not me though. Hm, what is Cedar ... something to google.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    46. Re:Work on the basics by Anonymous Coward · · Score: 0

      Nube!!

      chr('C') = 67 = 0x43

    47. Re:Work on the basics by HaZardman27 · · Score: 1

      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

      I'll agree with you for the most part about Javascript, but I don't understand your disdain for Python, and also not sure why you think it's so hard to get rid of. From my experience, it's not all that widely used (and it's also very easy to use and not nearly as cludgy as Javascript).

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    48. Re:Work on the basics by larry+bagina · · Score: 1

      Backend is node.js. It doesn't block, which makes it faster. Python, ruby, perl, C all have blocking i/o. (C can do asynchronous i/o but it's a pain and you have to be smart to get it right). node lets any mouth-breathing retard write non-blocking code. That makes it faster. Also, SQL is obsolete. Just store everthing as json and use Array.filter, Array.map, etc. It doesn't block which makes it faster.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    49. Re:Work on the basics by Opportunist · · Score: 1

      Maybe, but 2 is 10 in binary.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    50. Re:Work on the basics by CurryCamel · · Score: 1

      If that strip was inspired by this thread, I think I got caught in a timeloop here.

    51. Re:Work on the basics by smaddox · · Score: 1

      I've never heard of this approach. How would you implement it? I've always seen the database connection directly in the server side code.

    52. Re:Work on the basics by Count+Fenring · · Score: 1

      "it's" in that is referring to Javascript. He's saying "Even though JS is as bad as python, JS is like that annoying relative..."

    53. Re:Work on the basics by Anonymous Coward · · Score: 0

      First, "groupthink" doesn't exist as anything other than an excuse for one's own failure to express their opinions intelligently.

      Second, mozumder in particular has lousy karma because the overwhelming majority of his posts are trolling. Specifically, he's a libertarian who thinks he's being clever by masquerading as a strawman liberal.

    54. Re:Work on the basics by Jane+Q.+Public · · Score: 1, Informative

      Both of MY objections to Python I admit are personal preferences only: I don't much care for the syntax, and I don't much care for "significant whitespace".

      Although they're just personal preferences, they're strong personal preferences.

    55. Re:Work on the basics by tepples · · Score: 1

      How much partitioning between "service layers" are you talking about? For example, what precautions are indicated for smaller sites whose operators can't yet afford to lease two separate dedicated servers for production, one to run web and one to run the data access layer and the actual DBMS?

    56. Re:Work on the basics by Anonymous Coward · · Score: 0

      "Third" and the item with an index of 2 are the same thing.

    57. Re:Work on the basics by EricTheGreen · · Score: 1

      There are not enough "Funny" mod points on the planet to give this. Well played, VortexCortex!

    58. Re:Work on the basics by phantomfive · · Score: 1

      This causes all sorts of interesting issues, which is why I've dubbed this encoding WTF-8.

      Mind if I ask what sorts of issues?

      --
      "First they came for the slanderers and i said nothing."
    59. Re:Work on the basics by gnasher719 · · Score: 1

      Mind if I ask what sorts of issues?

      A trivial one would be to use strncpy or the "safer" strlcpy to copy strings, and the result isn't valid UTF-8.

    60. Re:Work on the basics by Hadlock · · Score: 1

      I actually had learn what EBCDIC was to use it in a NEW production process in October last year (2013). Nobody on the project knew what it was (we're all in our 30's), but it was easier to learn EBCDIC than try to rewrite the mainframe process that was spitting out the EBCDIC files. Except one guy who knew what it was and kept correcting our pronunciation of Ebb-kah-dic.

      --
      moox. for a new generation.
    61. Re:Work on the basics by dkleinsc · · Score: 1

      The biggest problem tends to be user data that includes Unicode code points that don't happen to match the equivalent ASCII value, such as accented vowels, the German sharp s, or the French and Spanish cedilla on the C. These are perfectly valid UTF-8 strings, but if you treat them as ASCII you will often end up with 2 mangled characters instead of the valid character you want. And of course anyone from an area that doesn't use the Roman alphabet at all is in real trouble: Greeks, Russians, anyone from Asia, Arabic-speakers, etc.

      And lest you think this is no big deal, and it's just an annoying question-mark box on a web page somewhere, realize that this can also lead to things like database backups that can't be restored until someone finds the offending character, XML services that don't work properly on that one article about El Nino, and makes it difficult to catch security attacks that use Unicode to get around ASCII-based regex filters.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    62. Re:Work on the basics by phantomfive · · Score: 1

      thx

      --
      "First they came for the slanderers and i said nothing."
    63. Re:Work on the basics by Wraithlyn · · Score: 1

      Well they do overlap for the first 128 characters... so all UTF-8, by definition, "uses ASCII".

      I frequently see stuff that has been encoded to UTF-8 *twice*. This results in all special (ie, multibyte) characters turning to gibberish. Running UTF8->Latin1 will convert it back to proper UTF-8.

      WTF-8 is a great name for this phenomenon though, totally going to use that. :)

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    64. Re:Work on the basics by phantomfive · · Score: 1

      What do you suggest using to deal with UTF-8 (and other encodings)? Is there a library or something?

      --
      "First they came for the slanderers and i said nothing."
    65. Re:Work on the basics by Nemyst · · Score: 1

      Wait, is this programming or some sort of weird cooking recipe?

    66. Re:Work on the basics by Giblet535 · · Score: 3, Funny

      iOS is a shrinking market (not growing as fast). Don't fanboy out on us. Android owns the vast majority of that market and is growing rapidly (very rapidly in China and other emerging markets). Obj C is a good skill, but not as valuable as jscript/jquery. C++ pays better, but the jobs are few and the projects boring. Python has more real-hire jobs. Java still leads in real-hire for some weird reason. If employment security is your focus, learn Linux, Java and javascript/jquery (Android path). Learning LAMP/WAMP is never a bad idea. If wealth is your focus, learn politics or specialize in diseases of the wealthy. If women are your focus, you are in the wrong forum, but report back if you're successful.

    67. Re:Work on the basics by Mr.+Droopy+Drawers · · Score: 1

      Wish I had mod points... This is the my primary barrier for learning Python (been doing PERL since '94). I like that it has lots of built-ins for web stuff. But, couldn't they use common practices when it comes to syntax and layout?

      JS is the lingua franca for front end web use. I like the comparison to annoying relatives :)

      --

      To Copy from One is Plagiarism; To Copy from Many is Research.

    68. Re:Work on the basics by squiggleslash · · Score: 4, Informative

      I'm not sure this is a fair answer to the question: it's a little like someone saying "It's 2014: What new stuff should I learn to be a better accountant?" and the answer coming back "Have you tried calculus? IT'S AWESOME!!"

      The right answer, alas, is not something that tickles your fancy, but something you're likely to hate - like the latest tax code.

      What about the original question? Well, they're saying "New technologies" but it's not clear if they mean "New to me" or "New as in 3D printed guns". I'm guessing the latter, this is Slashdot after all.

      The answer to the latter interpretation is, of course, "Who the f--- knows?" It's pretty close to impossible to determine what's a fad technology and what's not. I think node.js shows some potential, but it's the only thing I can think off the top of my head it's worth familiarizing yourself with - and technically, it's not new new, it's just up and coming.

      The answer to the former is... well, something that's going to depress virtually everyone on Slashdot.

      Python? Fuck no. Nobody uses it. Let me clarify that for pedants: yes, you can mention a handful of projects that use it, and many, many, many, GNU/Linux wizards use it to write quick automation scripts for various tasks, but that's not a reason to learn it.

      What do you need to learn that's a back-end language? Well, there are three:

      PHP.
      VB.NET.
      Java.

      At least two, possibly three, of those will send most self respecting programmers gibbering in a corner. However:

      - PHP is the language of LAMP. Yes, P originally meant "Perl", but PHP took over a long time ago. Download a few popular open source projects of scale and popularity equal to or greater than Wordpress (itself a common example), and you'll see what I mean - large numbers, possibly most, of the projects you download will be written in this bullshit, awful, language.

      - VB.NET is one of the two major enterprise core platforms. It really is. Why? Well, back in the 1990s, lots of corporations brought in armies of code monkeys to write their core business applications in the easiest languages available, which meant they were left with a large body of business logic written in VB. As businesses moved to the web, they found the easiest migration path was VB.NET, it meant they could use much of their existing code and simply drop it into a web environment. As a result, most .NET applications are written in VB.NET, and large numbers of enterprises are dependent upon it.

      - Java - the other end of the Enterprise coin. Any corporation who didn't migrate to VB.NET for their data/web backends migrated to Java instead, because of the big Java push in the late 1990s and because Sun put together some moderately good (for the time) web frameworks in the early 2000s.

      And that's it.

      You can start to cry now.

      Python? Nice, but up there with shell scripting as something that's good to have, but you won't actually ever have a boss ask you "We have major problem and we're going to need someone with Python skills to fix it."

      Front end development: HTML5 and jQuery. Worth knowing a little Flash too, because you may have to maintain something in Flash or even write something new in Flash if your employer doesn't want people downloading their multimedia files. That's about it.

      This is the truthful answer. It's up to you to decide now: does this make you want to give up being a programmer? Because if it does, you can always become an accountant! Here's a copy of the 2014 Tax code to get you started...

      --
      You are not alone. This is not normal. None of this is normal.
    69. Re:Work on the basics by dkleinsc · · Score: 1

      The ideal solution, especially if you're starting from scratch, is to use UTF-8 on your entire code stack. Set your database to use an appropriate UTF-8 code page at all times, write your code using UTF-8 strings (e.g. in Python all strings are UTF-8 unless otherwise specified), set your various content headers to declare that you're sending UTF-8, etc.

      Unfortunately, with legacy data you can't always do that, so under those conditions you're going to need to do a conversion into and out of your database and possibly plan to migrate to a converted database.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    70. Re:Work on the basics by Creepy · · Score: 1

      I'm with you there - white space significance always bugged me about Python, though it really originates from a peeve I picked up much earlier from hand-editing Makefiles (I learned make long before automake existed), which also has white space significance. My brother (an electrical engineer) learned Python as his first programming language since BASIC and loves it, however.

      In any case, it seems most development is moving to mobile. My company's research division (which I work in) is all ObjectiveC, java, and html5/javascript/webGL. Also server side rendering for graphics on browsers that can't render on their own (like IE, which doesn't natively support webGL).

    71. Re:Work on the basics by gewalker · · Score: 1

      Your preferences were identical to mine, but I kept reading about how Python was actually a pretty useful and powerful tool. So, I decided to started working through the Euclid Project using Python (I am up to #45) -- Only invested a few days so far, but since this process is very fresh in my memory, thought I would share.

      My brain is starting to get to used the both of my objections -- There is quite a bit a built in goodness especially when you factor in all the libraries out there.

      My long term goals are to benefit from the cross-platform scripting -- Python beats the pants on Perl IMHO -- having used Perl primarily for this purpose, I always tend to find myself wondering how a Perl script works a few months after I wrote it.

      Cross platform GUI is tempting, but have not investigated yet.

    72. Re:Work on the basics by Anonymous Coward · · Score: 0

      Being a "computer nerd" doesn't mean it's ok to not understand spoken language...

    73. Re:Work on the basics by dkleinsc · · Score: 1

      I understand that UTF-8 and ASCII overlaps - that's why people do this and regularly get away with it for years.

      And I have seen the double-encode phenomenon too - that usually happens when people know that doing things in ASCII is wrong, and read somewhere that they're supposed to UTF-8 encode, but don't really understand what they're doing.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    74. Re:Work on the basics by Anonymous Coward · · Score: 0

      Sadly, yes, the web browser is your application front end. PHP/Python/JavaScript are the guck that you create the front end of your application in, and any back-end processing on the server is done in a more efficient language (C is a fine language). The browser runs on your desktop/laptop/tablet/phone. You can access your data/server from wherever you are. This is your front-end and back-end.

    75. Re:Work on the basics by Anonymous Coward · · Score: 0

      The one thats relevant in five years time.

      In other words, you cannot tell.
      Work on the basics, indeed. Basic stuff like algorithm, maths,mcomplexity theory will always be important. Specific languages or tecnology, not so much.

    76. Re:Work on the basics by gbjbaanb · · Score: 2

      you've never heard of 3-tier architectures?

      3 tiers: webserver is the presentation layer; middle tier is a set of web services (or other services, but I guess people would prefer webservices nowadays), data tier is the DB, preferably exposing its stuff as an API via stored procedures.

      This is how the financial services companies (the ones that do things properly that is) do things. Typically they run their tiers on distinct servers that have security firewalls between them as well, and as limited an attack surface as possible (eg no network access at all from the web to the DB)

    77. Re:Work on the basics by gbjbaanb · · Score: 2

      It depends how much security you need. If I was running a blog that had posts about my cat... just slap it all on a single shared webserver.

      If I was running a server that contained people's credit card data, I'd run it as 3 servers: web, business logic and a third for DB. Generally, if you get to the point where you need this kind of stuff, you might require multiple web servers to handle load or fault tolerance anyway.

      If cost really is a problem, I'd run the 3 tiers in 3 VMs on a single box - assuming there are few attacks someone connecting from the internet can make to hijack the hypervisor, this should be sufficient for a lot of scenarios.

    78. Re:Work on the basics by Creepy · · Score: 1

      I would take it a step further - since the top bit in (original, non-extended) ASCII was used for error correction, the 127 characters in the first byte IS ASCII. If you stick to typing just ASCII characters, the UTF-8 generated encoding is indistinguishable from ASCII.

      I've also seen odd problems with it, but not nearly as many as I've seen with fixed multibyte sizes (endian related, usually, and I still encounter these on rare occasion even today, with ARM being bi-endian and some UNIX supporting big).

    79. Re: Work on the basics by Anonymous Coward · · Score: 0

      Those characters are not in ascii! They have various values in various 8 bit encodings such as variois msdos, macintosh and windows code pages.

    80. Re:Work on the basics by Anonymous Coward · · Score: 0

      Actually, Objective-C is an abomination with all kinds of scary custom syntax. It is useful only for iOS devices, and if you want to deploy on Android, you'll have to learn - java.
      Java will be a big uptick as well, especially for the libraries. Various flavors of Android devices will wreak havoc on your blood pressure, too, as it's pretty fragmented.
      You have to evaluate if your application requires a dedicated application only able to be run on a device OR, can it be a light application, or an app that gets its data from afar. If so, consider using something like PhoneGap or Kendo to create applications using web technologies.
      At that point, you'll have one option on the device: javascript ( which is basically c with its own bizarre syntax, though not as bad as Objective-C ). You'll have to deal with HTML and CSS - but the former is just formatting, and the latter is like a header file.
      Server-side you have several choices, the most popular are php, .net, python, and perhaps ruby. The most c-like of them is going to be php. .net is similar as well, though you'll have tons of libraries to deal-with just to get "Hello world." to show up.
      If you understand and use C++ - then you're better-off, obviously. If you're straight-c, then the smallest byte to chew would be php.
      Python's syntax is an abomination, in my opinion, though it has some really hot libraries. Ruby is so loosely-typed as to have an entire language that basically can swallow just about anything you throw at it, and not have errors.
      I had 15 years of c++, 3 years of Objective-C, 7 years of java before leaping onto the web. I started with jsp/java, but couldn't be productive until I switched to PHP. Been doing php for just shy of a decade, and do about 20% Objective-C now.

    81. Re:Work on the basics by tendrousbeastie · · Score: 1

      I thought that the third letter of the alphabet was Gamma? I guess I haven't kept up with current trends.

    82. Re:Work on the basics by Kremmy · · Score: 1

      The significant whitespace thing being an issue is pretty amusing to me after all these years. Admittedly I held a little of that in my early years, but the real eye opener for me came down to the active reuse of code in all of the various languages. I primarily used with C/C++ for a long time and every other snippet I came across had some readily apparent, though small, difference in the syntactic formatting. It's not something that will jump out right away, but when you get to maintaining a project of significant size it can be a significant hindrance to readability when the various sections of code are not formatted using the same guidelines. At that point, it becomes almost necessary to run any foreign addition through a beautifier that gets it almost to your specification. I feel like the significant whitespace thing wasn't new with Python, that's just one major place where they recognized the value of codifying it into the language.

    83. Re:Work on the basics by cyber-vandal · · Score: 1

      What makes you think you can't do this on .NET? Is RoR not an all-in-one solution then? Are you going to answer my other questions?

    84. Re:Work on the basics by cyber-vandal · · Score: 1

      And how many of them run ASP.NET vs RoR?

    85. Re:Work on the basics by cyber-vandal · · Score: 1

      You forget that most web stuff is in-house apps where that sort of architecture is massive overkill. In any case there's no reason whatsover that you couldn't do that on ASP.NET.

    86. Re:Work on the basics by Anonymous Coward · · Score: 0

      C is a number. It's like 12 in decimal...

    87. Re:Work on the basics by Anonymous Coward · · Score: 0

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

      Nope, it's the third, it's index is 2. quantity is not the same as position.

    88. Re:Work on the basics by Tablizer · · Score: 1

      You stole this from a typical job ad.

    89. Re:Work on the basics by mysidia · · Score: 1

      Actually, I couldn't read it, because when I loaded the page, my monitor squashed it into two dimensions: my monitor was also too heavy to rotate, in order to read the upside down parts.

    90. Re:Work on the basics by mysidia · · Score: 1

      You stole this from a typical job ad.

      I didn't mention get an A+ cert, learn to type at 25 words per minute, get a MOS certificate from Microsoft showing ability to use Microsoft Word, CCNA, MCSE, RHCE, learn system administration, and have 20 years of Java experience, 13 years of agile and C# development experience right now.. using scrum.

    91. Re:Work on the basics by Jane+Q.+Public · · Score: 1

      Well, I've had to deal with with a lot of code done by other people, and when it's sloppily formatted it just makes the job that much harder. So I am very strict about the formatting of my own code. Having to take a big file full of code and spend an hour or more just to format it properly so you can read it is the pits... and really should get somebody fired.

      About a year and a half ago I was given the task of translating a complex PHP website to another language. The site had been designed and coded by a big company whose name you would recognize. It was a horrendous mess. Terrible formatting (or rather, almost complete lack thereof), and multiple nested include files (even circular references... yuck). I mean a REAL mess.

      It took me about 3 days just to get the relevant code formatted sufficiently that I could even tell what was going on.

      Anyway... yes. Code must be formatted. But I have spent lots of time with "significant whitespace" schemes like yaml and haml. It's not a matter of "getting used to them", because I have. I just do not care to use them. A simple config file in yaml is fine but if it gets much more complex than that, "significant whitespace" drives me crazy. It's great for the people who like it, but I am just not one of those people.

    92. Re:Work on the basics by crutchy · · Score: 1

      as much as the php language is a crusty turd compared to the likes of pascal/delphi its probably the easiest and quickest to get something out the door, and i'm guessing is also why its infection is so widespread

      python is a toxic waste dump of shitty syntax

      never got into perl, but i've heard that its a popular tool for hackers so it must be fairly efficient

    93. Re:Work on the basics by crutchy · · Score: 1

      if i wasn't so disgustingly lazy i'd use c instead of php for server side

      c is cool
      pascal with its talky syntax and strong types is fine too - yeah i'm a delphi fanatic :-)

    94. Re:Work on the basics by NoImNotNineVolt · · Score: 1

      See, maybe we've heard of it, but we just don't understand it.

      You're telling me that the web server is the presentation layer, not a web service? I thought a web server didn't present any content meant for presentation to a human at all. I thought a web server was a middle-tier service that handled web (http) requests, passing content between a data source and a data viewer. I thought a web browser was the presentation layer, or the piece of software that actually presents content to a human.

      The problem is that people love trying to come up with novel ways of looking at something without actually considering whether they add any value. Client-server is great because it makes sense. Model-view-controller, on the other hand, does nothing to help us build better or more complex systems.

      --
      Chuuch. Preach. Tabernacle.
    95. Re:Work on the basics by gbjbaanb · · Score: 1

      I think the confusion over web servers has built up over time because of the word server in the title.

      The webserver's primary responsibility is to generate html to send to the browser. Now as people found they could run code from the webserver it was just too easy to keep adding code there and turn it into a monolithic do-everything (including the db layer sometimes as people found ways to store stuff in xml for various reasons, usually "speed").

      The link between browser and webserver is inextricably linked, I think its best to think of them as 2 halves of a single tier. Once you have that mindset, its easy to conceptualise putting your business logic in a dedicated tier that can be properly secured. Think of the server as the part that creates the GUI, and the browser as a dumb-terminal that simply renders it.

      Also, a lot of 3-tier systems have 1 DB, a couple of business logic servers, and several webservers.

      Its very easy to make use of the web frameworks to just bung everything into a webserver and run it all from there, and that's ok for small-scale stuff. But if you want to do it "properly", think of the webserver as part of the presentation layer, put the logic into distinct servers and things will be much easier overall, more secure and more scalable.

      Strangely, MVC appears to be just a way to get this 3-tier distinction but coded all in a single server.

    96. Re:Work on the basics by Half-pint+HAL · · Score: 1

      The significant whitespace thing being an issue is pretty amusing to me after all these years. Admittedly I held a little of that in my early years, but the real eye opener for me came down to the active reuse of code in all of the various languages. I primarily used with C/C++ for a long time and every other snippet I came across had some readily apparent, though small, difference in the syntactic formatting. It's not something that will jump out right away, but when you get to maintaining a project of significant size it can be a significant hindrance to readability when the various sections of code are not formatted using the same guidelines. At that point, it becomes almost necessary to run any foreign addition through a beautifier that gets it almost to your specification. I feel like the significant whitespace thing wasn't new with Python, that's just one major place where they recognized the value of codifying it into the language.

      Guido was right about the problem of actual syntactic blocks vs perceived syntactic blocks (ie when whitespace implies blocks that the braces don't), but I still think his solution was the wrong one.

      Programmers, as a rule, are obsessed with the notion of "human-readable code" and the plain-text editor. And yet, most use IDEs that do indentation and syntax highlighting automatically. If our code editors all understand the meaning of block delimiters, why not just write editors that automatically format the code's visual formatting based on the syntax? Heck, they already do this, indenting after { and dedenting after }, but they do so in terms of "human-readable" indentation (ie. adding multiple whitespace characters to the source file), and they allow the coder to override the settings. Why? Why not just have the editor force correct indentation based on block delimiters?

      Besides, Guido cheated. He stated that there were no block delimiters, but that's not true. There is no end delimiter for blocks, but every block starts with a colon. "No," you may say, "that's part of the statement before." In terms of the language's definition, that is technically true, but as all of the statements that it follows are logically quite different (at least three types: class and function definitions, conditionals, loops), it is easier for the programmer to generalise the colon to mean "start of block" than to mean "end of three-eight different things", and the human brain is wired to eliminate unnecessary complexity.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    97. Re:Work on the basics by Half-pint+HAL · · Score: 1

      Backend is node.js. It doesn't block, which makes it faster.

      Are you using a Dragon 32 as a webserver or something? If you tried running something with a pre-emptive multitasking operating system, you'd find that blocking hasn't been a big deal since the 1990s....

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    98. Re:Work on the basics by Anonymous Coward · · Score: 0

      > Programmers, as a rule, are obsessed with the notion of "human-readable code" and the plain-text editor.

      It always amuses me that certain old-school programmers shit on Python's significant whitespace, touting the flexibility of C formatting because whitespace is not significant... then rant and rave about "correct" indentation, the placement of curly brackets, whether there should be a space before the '(' in a function call, etc.

      You can't eat your cake and still have it. If you want insignificant whitespace, shut up about nonstandardized formatting.

    99. Re:Work on the basics by Half-pint+HAL · · Score: 1

      iOS is a shrinking market (not growing as fast).

      Sorry, that's nonsense. The iOS market continues to grow. That the rate of growth is slowing is different from "shrinking" by a long margin.

      Android owns the vast majority of that market and is growing rapidly (very rapidly in China and other emerging markets).

      Android handset sales have overtaken iOS according to many figures, but that's only half the story -- many cheap Android handsets will never get any extra apps installed on them, instead being little more than "phone with web browser" in the eyes of their owners. Android development is also hampered by the complexity of support on a massively heterogenous platform. Google are slowly abstracting away hardware issues, but there are hundreds of vastly different hardware configurations out there running multiple subtly different Android builds, compared to a couple of dozen highly similar iOS hardware devices, most of which are running one of the two latest iterations of the OS at any given time.

      There was a huge exodus from Android apps development a few years back, when software houses realised that Android support was not only eating into their Android profits, but stealing their iOS profits.

      I hate to be the bearer of bad news (I am certainly no Apple fanboy -- I got given an iPad as a present and was really annoyed about not being able to even load music onto it from Linux) but that's the way it is. I'm hoping to get an application into development for mobile shortly, and it's the Android compatibility issues that are my worst fear at the moment....

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    100. Re:Work on the basics by Anonymous Coward · · Score: 0

      ..

      PHP.

      VB.NET.

      Java. ..

      Great post, the only thing I would add would be that if you have 5+ years of good experience and know that you are a good programmer (only you can know this about yourself) make sure you do not settle for less than you are worth salary wise with any job.

      I agree with another poster that head hunters and job shoppers often want someone with 10 years of experience with a technology that has only been available for 5 years. I personally have seen this three/four times while looking for a position. Ignore them, be rational and know that if you have good experience, you are in the 1% of job hunters looking, the majority with more experience are not even looking, so don't let them get you cheaper than you are worth.

      And if you have 10+ years experience, leverage that and don't be affraid to ask for $150 ~ $200 per hour, your worth it. And if you are that good, you know it and they know it, sure they will hire you for $40 ~ $60 per hour if you are stupid enough to settle for that. Don't settle. You must be willing to walk away from most positions to get the higher salary. If you are that good, the company will know it based on your resume before they talk to you and any job shopper that does not get you in front of them will lose them as a client. Of course the head hunter is not going to tell you that, they want to charge the client $150 ~ $200 per hour and pay you $20 if you are stupid enough to take it.

      Rule of thumb, how much does it cost you to purchase a house, if you have to move, or rent an apartment (including 1st + last + security deposit).. whichever is higher, that is the minimum that company must pay you to get you. This minimum amount hourly is the lowest they can get someone with 2 - 3 years of experience. Every year of experience over that 2 - 3 years is worth a bump in pay. Once you get above 5 years of good hard experience, don't settle for less than $130K per year or $60 per hour.

      Let the company hire someone overseas for less that will steal their product and take their market from them, better not to be trapped in a company like that anyway.

      You have to know your worth and stick to it.

      As for technologies, if you want to work in a Microsoft dev environment, go anything .NET. If you prefer an open source and/or Linux environement go PHP. As to Java, well it will work for both, but is a true resource hog, so if you can develop a product without Java, your product will ALWAYS be superior to any product built with JAVA, just know it and move on. Remember Java works in both environments.

      Since Android is taking over the handheld and tablet marketplaces, any of the toolsets that help you there make sense. There have been so many mis-steps by Microsoft / Nokia, they will never recover, though they will be around for 5 - 10 more years. If you absolutely love Apple, that is different, however don't forget that Steve Job's hype is what kept Apple on top, granted this week they are getting a fantastic bump from China that should sustain them for 5 or more years. They simply are not Android. Besides, many companies are going to off shore those jobs to either Chinese or India citizens anyway, because they can pay them a fraction of a dollar comparable to salaries in the USA. A company only stops this after one of these cheap foreighn hires steal their product, start a company and start competing against them. This is an expensive lesson they seem willing to make/pay. Sad for them. In my mind, this makes Apple developement even less attractive, think about it.

      An overlooked area in handhelds, assuming you have root access (why buy a tablet, handheld that limits you this way?), is the advancements with HTML5. Combine the ability of running a 'web app' while not connected to the Internet in standalone mode, combined with a CGI (non Lamp, no active server connection) PHP on the device and you are looking at the futur

    101. Re:Work on the basics by Half-pint+HAL · · Score: 1

      > Programmers, as a rule, are obsessed with the notion of "human-readable code" and the plain-text editor.

      It always amuses me that certain old-school programmers shit on Python's significant whitespace, touting the flexibility of C formatting because whitespace is not significant... then rant and rave about "correct" indentation, the placement of curly brackets, whether there should be a space before the '(' in a function call, etc.

      You can't eat your cake and still have it. If you want insignificant whitespace, shut up about nonstandardized formatting.

      Way to miss my point entirely. And before slagging people off for being "old-school", why not first get into the 21st century and stop coding in a 1960s programming paradigm that assumes fixed-width fonts?

      My entire point was that both sides of this argument are wrong, because we can use computers to take out the heavily lifting.

      Modern code editors already have sophisticated lexers and parsers, so let's leave the editor to automatically lay the code out based on syntax. That way I can have spaces between my functions and brackets if I want, and when you load up my code, you won't need to see them (because your preferences say that's not your choice of layout). And while we're at it, we can start using proportional fonts, thus increasing the amount of visual information available and making code more readable.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    102. Re:Work on the basics by Giblet535 · · Score: 1

      Android: 43% and growing at an accelerating rate, iOS: 20% and stagnant. I call stagnant shrinking. From a revenue perspective, it's shrinking. There are a lot of reasons for that stagnation, but 3 years out, Apple is the new Blackberry. Jobs is not coming back, and iOS was never a very good OS. That said, the money is still in *new* iOS development for *now*. Soon, there won't be any money in any mobile development, for reasons related more to disposable income than platform capabilities. Give Android development a go if you have a decent idea: I develop for both and Android's quirks are more of the security/user-privacy expectations variety than HW abstraction (unless you're selling HW accelerated games or BTC mining kit). I make about the same from both platforms targeting Android 2.3+, but iOS sales have lagged increasingly since the Retina display devices came out. I have a theory about that, called 'Peak Cool in a Jobless Recovery'. My accountant bought that theory, anyway.

    103. Re:Work on the basics by Anonymous Coward · · Score: 0

      I wasn't trying to refute your point, I was just pointing out the irony of programmers who "slag off" significant whitespace complaining about the flexible formatting that non-significant whitespace allows.

    104. Re:Work on the basics by Clsid · · Score: 1

      Node is awesome, but please stop spreading the nosql myth. Even if you use something like mongodb, it cannot fully guarantee data integrity. Using something like postgresql or even mysql, not only gives you a huge usernase, industry standard tools and lots of help out there when you encounter the strange situation you will always run into when coding. Suggesting othherwise is either downright irresponsible or simply you are not doing mission critical stuff.

    105. Re:Work on the basics by Anonymous Coward · · Score: 0

      C'mon, if you're trying to go alpha-geek on us, at least say that C is the 10th letter of the alphabet.

      Ahh, Alpha Geek: 'M' is the 0xC letter of the Alphabet.

    106. Re:Work on the basics by Anonymous Coward · · Score: 0

      > PHP is the language of LAMP. Yes, P originally meant "Perl",...

      That is incorrect. PHP had superior MySQL performance because of some intimate collaboration and early involvement with Apache. LAMP originally was LinuxApacheMySqlPHP. Never Perl.

    107. Re:Work on the basics by Man+Eating+Duck · · Score: 1

      But does node.js block, and if not, does that make it faster?

      --
      Are you a grammar Nazi? I'm trying to improve my English; please correct my errors! :)
    108. Re:Work on the basics by squiggleslash · · Score: 1

      I stand corrected.

      --
      You are not alone. This is not normal. None of this is normal.
    109. Re:Work on the basics by jwhitener · · Score: 1

      http://w3techs.com/technologies/overview/programming_language/all

      PHP 81.7%
      ASP.NET 18.0%
      Java 2.7%
      ColdFusion 0.8%

      The numbers can be a bit misleading though. I bet there are 100's of millions of tiny/hobby php sites and wordpress installs. So while java/jsp/beans are only 2.7% of total web sites, they are probably huge sites. Ditto with ASP/VB.net and coldfusion, as only places with money to spend use those platforms.

      I use php, java, and coldfusion at work. Personally I enjoy coldfusion when I just want to get things done quickly.

      But depending on what sort of job you end up with, you may have to make something in PHP talk to something written in JAVA and output to a page written in Coldfusion:) So learning web-oriented data formats is helpful (json, xml/xslt, etc.).

  4. Learn the background of languages by Anonymous Coward · · Score: 1

    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.

    1. Re:Learn the background of languages by TapeCutter · · Score: 4, Interesting

      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.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    2. Re:Learn the background of languages by TapeCutter · · Score: 1

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

      Open K&R to and look at the design of the more complex examples, now think of the structs as classes, the struct's function pointers as methods, and the struct's variables as members, malloc() creates a new "object" and assigns it to a void pointer variable.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    3. Re:Learn the background of languages by TapeCutter · · Score: 1

      Sorry for the double reply, I thought I had lost the first one.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    4. Re:Learn the background of languages by jhol13 · · Score: 1

      Define "OO techniques". In C you just cannot use inheritance in any usefull way. IMHO inheritance is the most important aspect of OO.

    5. Re:Learn the background of languages by Anonymous Coward · · Score: 1

      For me, inheritance is the least important aspect of OO. I use it, but very sparingly. Implementation inheritance at least. Interfaces are different (though often lumped in as the same thing by some people).

      I've too much code with bad, even downright evil, use of inheritance - narrow deep hierarchies where it takes forever to find out what something is, where it lives and what it does. Shallow wide hierarchies are almost as bad (though if well designed, not quite as awful). And multiple inheritance? You can talk about why this method resolution mechanism is so much better than that one, but if it takes more than three minutes to explain, it will be unworkable in practice. Toss in public/private mysteries and a good inheritance loving programmer can keep others from understanding the code for weeks and from modifying it for quite a bit longer.

    6. Re:Learn the background of languages by Drethon · · Score: 1

      Add a type variable to an object's data and a switch for which "inherited" function to call based on the object's type. Not pretty but adds a form of inheritance.

    7. Re:Learn the background of languages by angel'o'sphere · · Score: 1

      From which year is that K&R issue you have?
      Mine is from 1987, there is nothing inside that is even remotely OO.
      (I had modded you troll btw.)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:Learn the background of languages by phantomfive · · Score: 1

      In C you just cannot use inheritance in any usefull way. IMHO inheritance is the most important aspect of OO.

      I do it all the time. If you want to see an example, look at the SDL i/o code.

      Define "OO techniques".

      OO means that the data and methods go together. All the other various definitions and techniques branch out from there.

      --
      "First they came for the slanderers and i said nothing."
    9. Re:Learn the background of languages by ClickOnThis · · Score: 1

      For me, inheritance is the least important aspect of OO.

      WTF? Without inheritance, you don't have OO. Inheritance allows you to collect and access common behaviors in base classes (implementation or interface.) The alternative is procedural if-then-else or switch-case constructions. I admit that sometimes the latter is a better choice, but only if it results in less code to modify when features are added or changed.

      I use it, but very sparingly. Implementation inheritance at least. Interfaces are different (though often lumped in as the same thing by some people).

      Agreed: use inheritance when it helps, not just for kicks.

      I've too much code with bad, even downright evil, use of inheritance - narrow deep hierarchies where it takes forever to find out what something is, where it lives and what it does. Shallow wide hierarchies are almost as bad (though if well designed, not quite as awful).

      Misused control structures can lead to spaghetti code. Misused inheritance can lead to spaghetti objects. Just because something can be misused does not mean one should avoid it.

      And multiple inheritance? You can talk about why this method resolution mechanism is so much better than that one, but if it takes more than three minutes to explain, it will be unworkable in practice.

      If it takes too long to explain, then it isn't well-designed.

      Toss in public/private mysteries and a good inheritance loving programmer can keep others from understanding the code for weeks and from modifying it for quite a bit longer.

      On the other hand, don't dismiss the power of encapsulation.

      IMHO, OO languages arguably have suffered from an overabundance of expressive power. It has taken awhile for programming practices to catch up (e.g., design patters.)

      --
      If it weren't for deadlines, nothing would be late.
    10. Re:Learn the background of languages by WWE-TicK · · Score: 1

      You can do encapsulation easy enough in C. But what about inheritance and dynamic binding?

      The point of OO languages is to be able to support OO constructs and make implemented OO designs easier. True, you can do all those OO things in C. But without language support, it gets to a point where the pros are outweighed by the cons. C++ and Objective C were invented for a reason.

    11. Re:Learn the background of languages by ClickOnThis · · Score: 1

      In C you just cannot use inheritance in any usefull way. IMHO inheritance is the most important aspect of OO.

      I do it all the time. If you want to see an example, look at the SDL i/o code.

      tl;dr. Please explain why you think SDL employs inheritace with C?

      Define "OO techniques".

      OO means that the data and methods go together. All the other various definitions and techniques branch out from there.

      That's certainly a basis for OO, but without inheritance, it just isn't OO.

      --
      If it weren't for deadlines, nothing would be late.
    12. Re:Learn the background of languages by T.E.D. · · Score: 1

      If you're a half competent C programmer you will be using OO techniques in any flavour of C.

      Yup. If you've ever used/created an API that made use of a "cookie" (typically a pointer or an int indexing into an internal array of instances) to keep internal data for its client sessions straight, you're 2/3rds of the way to "OO" already. Inheritance and dynamic dispatch are really just convenience features tacked onto that.

      Transforming calls from "operate_on(cookie,...)" to "cookie->operate_on(..)" is really just syntactic sugar. In fact, some OO language syntax uses the former rather than the latter anyway.

    13. Re:Learn the background of languages by T.E.D. · · Score: 1

      WTF? Without inheritance, you don't have OO.

      This is not at all true. OO stand's for "Object-Oriented". I was taught (and was doing) OO design back when the only "OO language" around was Smalltalk (and I wasn't using it).

      The core of the concept is organizing behavior around your objects, rather that visa-versa. Once you have that, inheritance is really just a convenience feature. It saves you the drudgery of manually retyping the entire interface with calls down into the "base" object class for non-overridden methods. But you could do that scut-work manually, or with (shudder) macros, and it would have the same effect The reason you've come to expect it in an OO language is because it is a natural thing to want to add to such a language (and a silly thing to leave out). But if you are stuck with a language not designed around OO (and thus without inheritance), that doesn't mean you can't do OO design in it.

    14. Re:Learn the background of languages by HeckRuler · · Score: 1

      struct father
      {
          struct father* next;
      };

      struct son
      {
          struct father inheritance;
          char* yobro;
      };

      And you're absolutely right.

    15. Re:Learn the background of languages by phantomfive · · Score: 1

      tl;dr. Please explain why you think SDL employs inheritace with C?

      Hey, you're the ignoramus that doesn't know how to do inheritance in C. I was just given you a suggestion of where to look if you no longer want to be ignorant.

      That's certainly a basis for OO, but without inheritance, it just isn't OO.

      No doubt there are people who say so; the definitions of OOP are many and varied. However the concept I mentioned is the concept that binds them all. Take that as wisdom or remain foolish, the choice is yours.

      --
      "First they came for the slanderers and i said nothing."
    16. Re:Learn the background of languages by ClickOnThis · · Score: 1

      Okay, I gave up on following your SDL example, but I did a bit more searching and now I concede that yes, you are right: it is possible to do object-oriented programming in pure C. Including inheritance. Not a pleasant exercise, but possible.

      Thanks for setting me straight.

      --
      If it weren't for deadlines, nothing would be late.
    17. Re:Learn the background of languages by ClickOnThis · · Score: 1

      Okay, I conceded this point to another poster, and I will to you also. It is indeed possible to implement object-oriented design with C only, including inheritance. I hope I never have to do it, but by God it's possible.

      --
      If it weren't for deadlines, nothing would be late.
    18. Re:Learn the background of languages by phantomfive · · Score: 1

      but I did a bit more searching and now I concede that yes, you are right: it is possible to do object-oriented programming in pure C.

      Good job. :) Now you are smarter and now we are both right. :)

      --
      "First they came for the slanderers and i said nothing."
    19. Re:Learn the background of languages by david_thornley · · Score: 1

      There's a difference in expressiveness of languages. If you work hard enough, you can write functional code in C, but it really isn't worth it.

      Learn an object-oriented language to encourage you to think that way. C++ is very powerful and you'll learn a lot of new ways to look at things, but it's a lot to learn and can be tricky. Java is popular, and won't be much effort to learn. If you want to have as little OO stuff as possible on your C, Objective-C isn't a bad choice, and it's got some serious real-world applications (defined as something you can make money with).

      K&R examples aren't object-oriented in any meaningful sense of the word. They're good procedural examples, and you certainly want good procedural programming at the bottom of your OO organization, but they don't have inheritance or polymorphism. Getting those right in C is going to be awkward at best, and it'll discourage you from thinking in OO as opposed to just knowing how OO works.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    20. Re:Learn the background of languages by Half-pint+HAL · · Score: 1

      Define "OO techniques".

      OO means that the data and methods go together. All the other various definitions and techniques branch out from there.

      That's certainly a basis for OO, but without inheritance, it just isn't OO.

      Nope. All modern OO systems may employ inheritance, but the single core concept that defines object orientation is that the program must consist of "objects" that manage their own data and their own behaviour. How they do that is up to them.

      Inheritance is a natural consequence of OO, and I would agree that designing an OO language without it would be a stupid move, but it is not core to OO.

      Personally, I wish that inheritance had to be manually specified, eg ChildClass.method = ParentClass.method, because while it seems like extra work to start off with, automatic inheritance means that object definitions are not self-documenting, and because multiple-inheritance often results in unclear dependencies.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    21. Re:Learn the background of languages by Half-pint+HAL · · Score: 1

      The problem is, "making things easier" often means "giving you enough rope to hang yourself". Inheritance reduces readability of code, because individual objects no longer contain the full description of their public interface.

      I never really got the point of OO when I was at university, but now I'm working in a problem domain that is ideally suited to OO. But when I go to look at what I can do with a given object, I have to manually go back through the inheritance tree to look for all the methods and attributes of the class. Worse still is multiple inheritance, cos you've got to go back to the language spec multiple times to make sure you're doing your tree traversals the same way as the compiler.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    22. Re:Learn the background of languages by TapeCutter · · Score: 1

      You assume that I don't use OO languages, matter of fact I started with Smaltalk in 1989 and can get my hands dirty with most flavours of C/C++, one early version of Watcom C++ I used (circa 1992) implemented inheritance as a set of macros on top of their standard C compiler.

      My original point was that OO is a design technique, not a language. You use it during the analysis stage, it can be implemented in any Turing complete language. In fact there is no such thing as an OO language, since it's just as easy to implement a good/bad design in C or Assembler, as it is in Smalltalk or C++.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  5. It's 2014 by StripedCow · · Score: 5, Funny

    Answer:
    Corporate Finance, Intellectual Property Law, Data Mining

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
    1. Re:It's 2014 by coastwalker · · Score: 5, Informative

      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.

      --
      Facts are history now plebs have politics for religion on social media.
    2. Re:It's 2014 by serviscope_minor · · Score: 1

      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.

      --
      SJW n. One who posts facts.
    3. Re:It's 2014 by bzipitidoo · · Score: 1

      Find and learn peer to peer tech. Or make it.

      Seems the business world has taken networking in a client/server direction. I see a lot of web and network programming that does not need to be done in a client/server model, but is done that way for the sake of convenience and control. It was the client/server model that proved to be Napster's downfall. The Pirate Bay is better distributed, but still possesses that single point of failure. Bit Torrent is peer to peer, except for discovery which is handled by sites like Pirate Bay. Why do users have to log in to use Skype? Skype has centralized critical parts of communication so that even though it can be peer to peer once connected, the server is necessary to authenticate the users and make the connections. Email and instant messaging has evolved in the same direction. Run your own mail server, or take the easy way and let Google, Yahoo, MS, and friends scan your emails?

      Most MMO games are also centralized, and this seems necessary to police the players, stop bad players from spoiling the fun. But is that really necessary? More like, no one has received funding to try to make a distributed decentralized system that can enforce a minimal set of rules necessary for a community to function. There seems no money in it. The typical game company likes to keep a tight grip on the kill switches, to force those monthy payments out of their users. In recent years, they've experimented with free accounts, but they still have their tight grip and can take their game down at will, or spitefully see it go down as part of their implicit suicide murder pact. Steam goes further, turning what was an offline gaming experience into one in which they are the gatekeepers. Your purchases, accomplishments, and accounts shall not survive the demise of the company! Be a real shame if they went out of business, hint hint.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    4. Re:It's 2014 by Anonymous Coward · · Score: 1

      I was a software developer, and now I'm a patent lawyer. I might not being doing god's work, but I sure as hell get paid a lot more. Furthermore, patent law can be very rewarding, especially if you like learning about technology. I have had the opportunity to really dive in deep on some very specific areas of technology.

    5. Re:It's 2014 by Anonymous Coward · · Score: 1

      Answer:
      Corporate Finance, Intellectual Property Law, Data Mining

      Yes, anything that can easily steal private information from the user will be in big demand. Used by all world governments, corporations, and malware authors. This covers 99.99% of all web programming. Figure out new ways to trick the user into using a web installer, or other ways of sneaking a driveby download past firewalls and virus scanners. Oh and bonus points if you can figure out how to push obnoxious ads past ad blockers.

    6. Re:It's 2014 by Nemyst · · Score: 1

      That list is for if you want to make money and have close to no morals. If you don't fit with that narrow definition, then it's even more useless than the other comments. The real answer is: learn whatever interests you. You can't replace enjoyment of your work with money. Plenty have tried and they all look utterly miserable.

    7. Re:It's 2014 by snadrus · · Score: 1

      You can't make a distributed, decentralized rule enforcer that's open source or unencrypted. Any source leak and it's over.

      P2P MMO hits scalability issues with groups of people interacting.

      Only 1-on-1 activities make sense, and if you're interested in that then check out webRTC (video chat, screen share, file transfer)

      --
      Science & open-source build trust from peer review. Learn systems you can trust.
    8. Re:It's 2014 by david_thornley · · Score: 1

      One problem with MMOs is that you really do need One Source of Truth. Suppose there's a limited resource (a monster drop or mining node or something). If two players are going for the same resource, only one is going to get it, and there has to be a clear and obvious way to determine who did. (It doesn't necessarily have to be fair or free of bugs, but clear and obvious.)

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  6. Re:it's a completely amazing technology... by Anonymous Coward · · Score: 0

    ...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 :/

  7. Re:it's a completely amazing technology... by Anonymous Coward · · Score: 0

    How is not Linux a new technology?

  8. Re:it's a completely amazing technology... by Anonymous Coward · · Score: 0

    as if your reply were any more useful

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

  9. Re:Learn this by rioki · · Score: 1

    I was thinking the same, except mine was:

    A programming language for the ages: C11

  10. Re:Learn this by Anonymous Coward · · Score: 0

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

  11. JS and HTML5 by Anonymous Coward · · Score: 3, Insightful

    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.

    1. Re:JS and HTML5 by Tablizer · · Score: 1

      HTML5 is a high-risk choice. The market may skip it like they did VRML. Vendors are squabbling over standards details and there are some serious security concerns. I suspect the industry will instead decide to extend existing HTML standards with additions (new attributes and tags) instead of try to semi-overhaul it like they're trying in 5, which is not very backward compatible.

      Wait until you are sure it's catching on. Mobile Java is a safer bet if you are tired of C.

  12. Universal... by Anonymous Coward · · Score: 3, Interesting

    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.

    1. Re:Universal... by Opportunist · · Score: 4, Insightful

      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.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    2. Re:Universal... by mysidia · · Score: 1

      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.

    3. Re:Universal... by MickLinux · · Score: 1

      For employability?

      Learn to flip burgers... for a job at McDonalds.

      Learn to drive, for a job at Dominos where you have to clock out whenever you're actually doing your job, and use up your own car, and the company charges a delivery fee that goes in the owner's pocket and ends up eliminating the actual tip.

      Learn to smile and say welcome to Walmart, then turn around and ask to see people's receipts when they leave.

      Learn to lie and cheat and steal and backstab your opponents' friends for a job in politics.

      Learn to embezzle for a job on Wall Street

      I guess we're also paying doctors at the moment, possibly dentists; insurance makes an okay scam...

      The government employees' unions haven't crashed, so being a union rep might pay (but I expect the glorious pensions of the employees themselves will evaporate when the cities go bankrupt)

      I'm not sure that any other skills are employable. To be employable, you have to do a job that those with money will pay for.

      Oh, sooner or later there will be jobs for soldiers to shoot rioters, but they won't pay for that. See what happened in Zaire/Congo.

      --
      Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
    4. Re:Universal... by Anonymous Coward · · Score: 0

      Or my boss

    5. Re:Universal... by Opportunist · · Score: 1

      Consultants and managers get along so well exactly because they speak the same lingo. Bullshitting and lying.

      I've been doing it myself for a while. Eventually I grew tired of trying to teach pigs nuclear physics. In the end, it frustrates you and annoys the pigs.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  13. Javascript! by Anonymous Coward · · Score: 4, Insightful

    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...

    1. Re:Javascript! by Knutsi · · Score: 1

      Think there might be something to this. I feel .js is showing up everywhere these days. I've not really worked as programmer for some years, but now that I ended up doing some coding again, I settled on TypeScript (which transpiles to JavaScript) for a both client and server, with loads of shared code between the two. It's a very interesting fusion of things, and the strong typing and tooling that TypeScript adds to Javascript really fixed some of my complaints about .js. If you are curious, check it out. Also, WebStorm IDE has excellent tool support.

    2. Re:Javascript! by Anonymous Coward · · Score: 0

      I've never met anyone who likes javascript and can program in more than 2 or 3 languages.

      The only folks who think it's really that good are those who've never seriously used anything better.

  14. Stick to what you know by rodrigoandrade · · Score: 5, Insightful

    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.

    1. Re:Stick to what you know by cyborg_zx · · Score: 3, Insightful

      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.

    2. Re:Stick to what you know by ebno-10db · · Score: 4, Insightful

      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.

    3. Re:Stick to what you know by Opportunist · · Score: 4, Interesting

      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).

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    4. Re:Stick to what you know by Anonymous Coward · · Score: 0

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

    5. Re:Stick to what you know by Anonymous Coward · · Score: 0

      Hating on H1B's on Slashdot? Insightful!

      (What's the topic again?)

    6. Re:Stick to what you know by gr7 · · Score: 5, Interesting

      On the plus side, Embedded programmers get about twice as much as web programmers. Switch to contracting if you want more money - around $50 per hour for web developers $30 to $75 and around $100 per hour for embedded programmers ($75 to $200). I'm not an expert on rates. This is just people I've met. It's a small sample but it makes sense. Embedded C programmers with more than 3 years of experience are damn hard to find. It's a niche market.

      On the minus side, there are fewer Embedded programming jobs out there so you have to travel farther and often you can't work from home because you need to be with the hardware and often there aren't enough hardware to let you take one home. Or you need expensive debugging equipment like oscilloscopes, etc. Again I'm talking about contracting where you will have to travel to different places every time you get a new contract and they will be farther away than those web development contracts.

      I recommend you stick with embedded C and if you want to learn something, learn how to use an oscilloscope, read a schematic and study some basic electronics so that when something doesn't work you can tell the Electrical Engineer exactly what is wrong instead of just saying "it's broken". This is how you get in the upper end of the salary range.

      If you do switch to web programming then obviously you need to know: html, javascript, SQL. Those are the most basic and key things you need to understand.

    7. Re:Stick to what you know by wings · · Score: 1

      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.

      Sometimes I wonder if they're simply looking for someone who was willing to put in in 5 years of 80hr weeks and expecting the same going forward.

    8. Re:Stick to what you know by Anonymous Coward · · Score: 0

      Ah, the old "new languages do the same thing as old languages" argument. Yes, all Turing complete languages can accomplish the same thing. But there has definitely been real innovation in languages, even very recently. Scala is one example of a recent language that does a great job putting together functional and object-oriented paradigms in a way that's actually usable and productive. The compiler is still wicked slow, but Scala is a good example of recent meaningful innovation in languages.

    9. Re:Stick to what you know by 0xdeadbeef · · Score: 1

      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

      This is the advice of a code monkey peon who doesn't know what the fuck he is talking about.

    10. Re:Stick to what you know by Bogtha · · Score: 1

      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.

      That's not particularly accurate. I've never seen anybody ask for more than a few years of experience building iOS applications. I've been doing it since late 2008 and nobody has ever asked for more experience than I have, and most places have required significantly less. If there is one standard qualifier all the recruiters are looking for it's "must have an app in the App Store". We're not particularly concerned with the number of years in the field when we hire - so long as they can write decent code.

      There's huge demand for iOS developers and there aren't enough to go around. If he picks up Objective-C and sticks an app in the App Store, he shouldn't have any trouble finding work as an iOS developer. It's relatively easy to find decent work even without substantial experience because for a lot of places, the choice is between inexperienced developers, expensive contractors, expensive external agencies, and nobody.

      --
      Bogtha Bogtha Bogtha
    11. Re:Stick to what you know by Bogtha · · Score: 1

      Not to mention the fact that Objective-C has been around since the early 80s and isn't exactly a newcomer. The first ever web browser was written in it.

      --
      Bogtha Bogtha Bogtha
    12. Re:Stick to what you know by Necron69 · · Score: 2

      I'd stick to embedded systems. There is more and more of it all the time, and a lot of it runs Linux/C. I graduated in '93, and moved to embedded systems (switches) six years ago. I really only program in C and Perl, but I make well over six figures, work only 40 hours a week, and live nowhere near Silicon Valley.

      Let the kids chase the hot new stuff.

      - Necron69

    13. Re:Stick to what you know by mcrbids · · Score: 1

      LOL at the idea that the market would "move on" from Android development. Sorry, Android isn't going *anywhere*. It's open source, very powerful, efficient, and is leading the downscale price race, which is exactly where leading technologies need to be to stay in the lead. See Windows vs Mac, see Digital vs IBM, Linux vs Unix, etc.

      In my 25 years in IT / Software development, I've seen several paradigm shifts. (Yes, "paradigm" is perhaps the most over used buzzword of all time, but please stick with me)

      1) I saw a bit of the tail end of the shift from Mainframes to Minicomputers. (EG: Digital Vax) Note that the mainframes are still in place.

      2) The shift from mini frame computers to PCs. Note that the mini-frame computers generally remained in service.

      3) The rise of PCs as servers, somewhat merging mini frame PCs and PCs. Note that the *role* of the Miniframe computer remained, as a "server" and even today some business run Vax apps in an emulator.

      4) The rise of the Internet that combined servers the world over into a huge, super-hyper-mega-network. Note that PC Servers dominate this environment.

      5) The rise of mobile devices as clients.

      Please note that In every single paradigm shift, the role of the previous stage remained useful and relevant, in many/most cases becoming critical infrastructure for the next stage. The only exception is perhaps the mini-frame computer which still exists in spirit but is being squeezed at both ends by mainframes and PC-based servers.

      Mobile devices are probably best thought of as an "on person server" for the next stage of development which (my opinion) will likely be embedded devices that communicate via the mobile device. See the "smart watch", see the "closed loop insulin pump", bluetooth headsets, Google Glass, and a host of other devices that leverage and extend the mobile phone.

      TL'DR: OP may be in exactly the right place to take advantage of the next wave of computing, small embedded devices that use mobile devices as their "server" to communicate with the outside world.

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    14. Re:Stick to what you know by 0xdeadbeef · · Score: 1

      You're gold, you have 10+ years of C. It doesn't get any better than that.

      Where does this mentality come from? It's C. It's one language. It's one of the simplest languages, and it exists more as the foundation for everything interesting than being interesting itself. If you're not a moron, two years of C is the same as five years of C is the same as ten years of C.

      It's like telling an aspiring chef, well, you know how to grill meat, it doesn't get any better than that.

    15. Re:Stick to what you know by Valdrax · · Score: 1

      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.

      I agree with this sentiment wholeheartedly, and I want to flip your question around back at you:

      How the hell do I get into embedded programming? I've got 7 years of C & C++ UNIX workstation & server programming on my resume, so I keep getting resumes tossed my way asking about embedded jobs with decent pay, but I'm not actually qualified for any of them. (Typical lazy recruiter BS.)

      I am interested though because I enjoyed low-level programming when I did it in college, so let me know how to get into the position you are trying to leave. I could use the cash.

      --
      If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
    16. Re:Stick to what you know by Matheus · · Score: 1

      When I started working in the industry companies were all looking for 10+ years of Java experience when the language had only existed for 4 years. Companies will always ask for the impossible... job hunting 101.

      As for the OP's question my current job is a great example of what he may go through:

      I've spent nearly 15 years writing standalone j2Se applications for a variety of uses. I'd bumped into Web in a variety of ways but it'd never been my actual job and so got very little of my time. There are a number of other technologies as well such as JPA, Spring, etc that I'd seen, maybe fixed, but not created in.

      My current job has been a learning experience as, although my foundation in base Java is quite solid, almost every technology/framework/etc we're using here was new to me 1st day on the job. I was very clear about this in the interview. Their response / reason for hiring me was exactly right: You're a great programmer the rest of this you can learn.. we're not worried about it.

      Obviously this takes a certain amount of intelligence on the part of the hiring manager and some skills to get past the filters but honestly *every job I've ever had has used some tool or skill I didn't possess on hiring. It's almost in your better interest to find the job and let them pay you to do the learning once you know exactly what you will need to do *that job.

      Only aside I would say is if you've lived in a world of *pure C then you probably need to wrap your head around OOP concepts. They're not that hard really but it's enough of a different way to interpret the world that you should get your head moving in that direction.

    17. Re:Stick to what you know by HeckRuler · · Score: 1

      If you're not a moron, two years of C is the same as five years of C is the same as ten years of C.

      Ok then, off the top of your head, describe what a variable is.
      How about a const variable?
      What's a volatile variable?
      Now you see a const volatile variable. What is it? There's a simple answer that comes in a single word that's bloody obvious to everyone in the game.

      Every played with variadic functions?

      Shout out to my ternary ops! Aww = Yeah?Bitches:!;

      and it exists more as the foundation for everything interesting than being interesting itself.

      No, there's actually quite a lot of interesting things you can do in C. I mean, all by itself, sure, C is just kind of a ruleset. Hammers, saws, and nails are only so interesting, but the things you can do with them CAN BE quite interesting and the end products can be beautiful. Or it can be a hideous clusterfuck that barely functions. Which way that goes appears to have a strong correlation with experience.

    18. Re:Stick to what you know by Tablizer · · Score: 2

      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...

      No, they work them 80 hours a week instead of 40 so they have 10 years of experience in 5. It's like Dog Years (life is ruff).

    19. Re:Stick to what you know by cyborg_zx · · Score: 1

      Ah, the old "new languages do the same thing as old languages" argument.

      No, it's that new languages aren't generally solving any new problem with any really different way of expressing things. You basically have your functional style and procedural style and those were invented before electronic computing (lambda calculus and Turing machines). Maybe include prolog in there as a slightly different take on logical expression for computers.

      Scala is one example of a recent language that does a great job putting together functional and object-oriented paradigms in a way that's actually usable and productive.

      But it's not really new. It's just another variation on things that have gone before. Just looking at the front page of the website "Haskell" instantly comes to mind.

    20. Re:Stick to what you know by jwhitener · · Score: 1

      If you do switch to web programming then obviously you need to know: html, javascript, SQL. Those are the most basic and key things you need to understand.

      It is highly variable right now. Many web shops have a front end designer who handles html/css and some javascript, then sometimes a middleware person who does php/java/asp, and lastly a c/java/database person who might provide stored procedures for the middleware guy to query.

      Smaller shops, you may end up doing all of that yourself.

  15. Stick with what you are doing by PsyMan · · Score: 2, Funny

    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........

  16. -- Which New Technologies Should I Learn? by Anonymous Coward · · Score: 2, Interesting

    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).

    1. Re:-- Which New Technologies Should I Learn? by CastrTroy · · Score: 1

      I would say that a good developer you can learn any language in about 30 minutes. The standard constructs (loops, conditionals, functions, classes, etc.) can all be explained in about 10 pages. A handy "cheat-sheet" can help you remember the syntax. The hard part about learning a new language is learning the API. And in that respect, Java and .Net are pretty much completely different. A developer could more easily switch between VB.Net and C#, than they could switch between C# and Java, because in the first instance the API is exactly the same. Even though the languages are very different, this matters very little.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  17. Web Development by Anonymous Coward · · Score: 5, Funny

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

  18. momkind; new clear options abound by Anonymous Coward · · Score: 0

    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?

  19. Learn the backbone by taikedz · · Score: 5, Informative

    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 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?

    --
    -- "Simplicity is prerequisite for reliability." --Dijkstra
    1. Re:Learn the backbone by Anonymous Coward · · Score: 0

      In addition, he might be interested in:
      http://www.webtoolkit.eu/wt/
      Web app frameworks in C++
      http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#C.2B.2B

      Of course C++ isnt C, but I think he might like the idea of going straight into production code capability with C++, rather than something totally new like Python / Ruby / Java / C-sharp.

  20. If you already know C ... by Viol8 · · Score: 3, Insightful

    ... 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.

    1. Re:If you already know C ... by Anonymous Coward · · Score: 1

      Learn how to code discrete ASICs and mine bitcoins.

    2. Re:If you already know C ... by ebno-10db · · Score: 3, Interesting

      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.

    3. Re:If you already know C ... by phantomfive · · Score: 1

      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.

      In the computer industry, you need two skills:
      1) how to do your job,
      2) how to find a job

      If you're lacking one of those, you should try to improve it, otherwise the task of making money becomes harder. Sounds like your brother could improve at #2 (although sounds like he figured it out, so good for him).

      --
      "First they came for the slanderers and i said nothing."
    4. Re:If you already know C ... by H0p313ss · · Score: 1

      Also his degree is in a completely non-CS related subject.

      If you have a choice between two candidates for a coding job and the only difference is one had a degree in CS or Software Eng. and the other doesn't it's really not hard to make the choice.

      That's probably the biggest issue, there were so many people out of work that those with relevant degrees would simply float higher up the stack of resumes.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
  21. How about the ABC? by Anonymous Coward · · Score: 1

    ActiveX, BASIC and COBOL.

    1. Re:How about the ABC? by Anonymous Coward · · Score: 0

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

    2. Re: How about the ABC? by Anonymous Coward · · Score: 0

      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?

  22. 2014 = Let Java die. by danknight48 · · Score: 0, Flamebait

    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...

    1. Re:2014 = Let Java die. by Anonymous Coward · · Score: 2, Funny

      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.

    2. Re:2014 = Let Java die. by Anonymous Coward · · Score: 0

      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...

      I wasn't aware Java had a var keyword...

    3. Re:2014 = Let Java die. by guacamole · · Score: 1

      I wouldn't put all of my money into the C++ bank. On one hand, C++ keeps getting better and better with each standard. On the other hand, the complexity is horrendous. One retired professor from my college described C++ as "a notorious can of worms". The later will prevent C++ from becoming a mainstream "must have" programming language. This is why Java became more popular in the first place. On the other hand, it's fair to assume that the market for hiring true C++ experts will not go away. It has its niche.

  23. mobile devices. by hooiberg · · Score: 3, Insightful

    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.

  24. addendum by taikedz · · Score: 2

    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.

    --
    -- "Simplicity is prerequisite for reliability." --Dijkstra
  25. Re:it's a completely amazing technology... by Anonymous Coward · · Score: 0

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

  26. HTML, CSS, JavaScript and progressive enhancement by magic+maverick+ · · Score: 5, Informative

    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.

    --
    HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
  27. C for mobile. by Anonymous Coward · · Score: 0

    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.

  28. Languages are not technologies. Yet you might want by vikingpower · · Score: 1
    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 !

    --
    Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
  29. Re:HTML, CSS, JavaScript and progressive enhanceme by magic+maverick+ · · Score: 3, Informative

    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.

    --
    HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
  30. Re:Learn this by gnasher719 · · Score: 0

    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.

  31. Duh by hackertourist · · Score: 5, Funny

    Antigravity, nuclear fusion, holodeck.

    1. Re:Duh by Anonymous Coward · · Score: 0

      You forgot Hoverboard

    2. Re:Duh by Anonymous Coward · · Score: 0

      And flying cars.

    3. Re:Duh by ThatsDrDangerToYou · · Score: 1

      Antigravity, nuclear fusion, holodeck.

      Amateurs. It's COLD fusion. The regular kind is so 20th century.

      .. and hello! Light sabers. Maybe powered by cold fusion.

  32. Re:Languages are not technologies. Yet you might w by Daniel+Hoffmann · · Score: 1

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

    Also, XML is dying, long live JSON.

  33. C++11 by speps · · Score: 2, Informative

    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...

    1. Re:C++11 by phantomfive · · Score: 1

      I think given the momentum C++ has right now

      Wait, why do you think C++ has momentum? I've been seeing people go the other way; I know one company that completely re-wrote their server in C recently.

      --
      "First they came for the slanderers and i said nothing."
  34. Expand what you already know. by GauteL · · Score: 4, Insightful

    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.

    1. Re:Expand what you already know. by CubicleZombie · · Score: 2

      I have to disagree. If you expand too much on what you already know and become too specialized, you can end up unemployable. Chase the JavaScript stuff and then use that 15 years of experience to end up managing those 20 year old whiz kids.

      --
      :wq
    2. Re:Expand what you already know. by rasmusbr · · Score: 1

      Yes, realize that you essentially already have 15 years experience with mobile if you've been doing embedded C on Linux for that long. If you learn the basics of Android/Java/JNI you'll be able to be productive on many modern mobile or wearable devices with your Linux and C knowledge.

  35. Internet of things by Anonymous Coward · · Score: 0

    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.

  36. The "cloud" by pla · · Score: 2

    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.

  37. Hmm by nightsky30 · · Score: 1

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

  38. no particular order by Anonymous Coward · · Score: 0

    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

  39. never learn anything just for the sake of learning by Tom · · Score: 4, Insightful

    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.

    --
    Assorted stuff I do sometimes: Lemuria.org
  40. Re:NEW TECH ??? by smittyoneeach · · Score: 1

    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.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  41. Re:it's a completely amazing technology... by Anonymous Coward · · Score: 0

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

  42. Web and mobile technoligies worth looking at by Anonymous Coward · · Score: 2, Informative

    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.

    1. Re:Web and mobile technoligies worth looking at by Anonymous Coward · · Score: 0

      For iOS development, Objective-C is the way to go (and as far as Apple is concerned, the ONLY way to go).

      Well, no, actually. There is also Objective-C++, which is fully supported by Xcode.

  43. The correct answer: by Anonymous Coward · · Score: 1

    Windows 8 !

  44. Soulskill is not really interested in the asnwer by matbury · · Score: 1

    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?

  45. Internet of things by jrumney · · Score: 1

    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++.

  46. Rust by ChunderDownunder · · Score: 1

    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.

    1. Re:Rust by mebrahim · · Score: 1

      Nice suggestions, but I wouldn't count that as "web development".

  47. Re:HTML, CSS, JavaScript and progressive enhanceme by Anonymous Coward · · Score: 0

    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!

  48. Re: it's a completely amazing technology... by Anonymous Coward · · Score: 0

    Windows is the one that is bloated.

  49. Obviously by msobkow · · Score: 1

    Obviously you need to learn COBOL and FORTRAN. Like 'C', they will never go away. :)

    --
    I do not fail; I succeed at finding out what does not work.
  50. The ones that make you competitive by onyxruby · · Score: 1

    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.

  51. Re:Learn this by mysidia · · Score: 2

    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.

  52. 'tis a Smorgasbord by pensivearchitec · · Score: 2

    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, 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/vibe.d/yesod/spray. 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/angular.js 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/Bootstrap 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 is a rdbms similar to Oracle that has very powerful/fascinating features that no other db system has such as hstore 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.

  53. Re:Languages are not technologies. Yet you might w by Anonymous Coward · · Score: 0

    > RDBMSes are going to die

    keep dreaming...

  54. None of the Above by RotateLeftByte · · Score: 1

    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.

    --
    I'd rather be riding my '63 Triumph T120.
  55. Learn Plumbing by Anonymous Coward · · Score: 0

    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

    1. Re:Learn Plumbing by jfdavis668 · · Score: 1

      Welding is a more up and coming technology

  56. It's not about which technology by Taco+Cowboy · · Score: 5, Insightful

    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.

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:It's not about which technology by TWiTfan · · Score: 4, Funny

      "What do I want to do 10 / 20 / 30 years from now?"

      I'm not sure how useful that question is. I suspect I would need something somewhat more concrete than my REAL answer, which is "Sleeping on piles of $100 bills with many beautiful women."

      --
      The cow says "Moo." The dog says "Woof." The Timothy says "Thanks, valued customer. We appreciate your input."
    2. Re:It's not about which technology by JoeMerchant · · Score: 4, Insightful

      For the next 30 years, 2014 to 2044, you should know: basic health and hygiene, home maintenance and construction, cooking, gardening, maybe farming and animal husbandry if you are going to own some land.

      It doesn't hurt to understand finance, a little bit about the legal / political system.

      If you don't want to be held hostage every time your car breaks down, learning some mechanical skills is good too.

      Oh, yeah, and these computer things - that's a good way to earn money, use your brain in the manner of the oldest profession: become whatever people are paying for, and be ready to change and adapt as the market changes. Look back to 1984, predict from that point what skills you should have learned for 2014, the next 30 years are going to be just as volatile on the tech front, but those other skills have been valuable assets for hundreds of years (70ish for the cars), and will continue to be valuable into the future.

    3. Re:It's not about which technology by hodet · · Score: 4, Insightful

      Along these lines, I once heard someone say that asking what the world needs is the wrong question. You should ask yourself what you are passionate about, then do that, because what the world needs is people with more passion.

    4. Re:It's not about which technology by Dcnjoe60 · · Score: 2

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

      10 years, maybe, but 20 or 30 is too far out to estimate when related to technology. Who would have imagined the current technology landscape and job opportunities back in 1984 or even 1994?

      In 1984, you were most likely programming in COBOL, FORTRAN, or C, and while those languages still exist only C is still widely used. Yes, there are still millions of lines of code being maintained in COBOL and FORTRAN, but nobody would declare either of those a career path to pursuit today.

      Even 10 years ago, the mobile space didn't even exist, at least not like it does today. For mobile, you would be looking at Blackberry development. Of course, the internet was alive and kicking, but even then, most sites were not dynamic like they are today and Java ruled the three-tier model.

      To answer the original question of what "new" technologies, normally the answer would be to build on what you already know. However, since the questioner's background is in C and embed systems, that's not going to be too helpful. Instead, you need to look at what market you want to get into. Android app development, learn Java. iOS then it would be probably be Apple's development stack. Web, definitely HTML5 and php and javascript. If you want to be doing system's work, then your C background will serve you well. Desktop applications - if for Windows, then you better bone up on .Net.

      However, with all of those, it really depends on how quickly you are planning to switch career paths. Most of those should be relatively easy for a C programmer to pick up, but will still take a long time to master. To be employable, you really need to master the language/tools, unless you are willing to take an entry level job. One way to pick up the skills, is to make the choice of what you want to learn and then attach yourself to an open source project or two (after you've learned the basics of the language in question). Not only will you be able to use any work you've done on the project as part of your resume, but you may find out if you really like the choice you've made without leaving your current job. In addition, you will be connected with other programmers and technologies that will further help you refine your skills.

      So, after this long post, my suggestion would be not what you want to be doing 10,20,30 years out, but figure out what you want to be doing 3 years out and then make a plan to get there.

    5. Re:It's not about which technology by pr0fessor · · Score: 4, Funny

      So your new career path is pro-athlete or rap star.

    6. Re:It's not about which technology by abies · · Score: 1

      This is a valid answer. And then suggestions will be in what areas you can earn enough cash to fulfill that dream. Might be very different from 'how do I enjoy my work' or 'how do I develop myself as a person'.

      Had a friend who was working 12+hours days (plus being on-call during a night) as highly paid contractor in the bank. He was doing that for over 10 years already. He was 40, but looked more like 55. And he had a clear deadline - by 45, he would save enough money to never have to work again, buy big house, yaht etc etc. (yes, it was well paid work). Problem is that by then, he might not be able to really enjoy it...

      But yes, if having a LOT of money in 20 years is your only criteria, there are legal ways to do that, if you are willing to flush 20-years of life quality down the drain.

    7. Re:It's not about which technology by larry+bagina · · Score: 0

      I'm passionate about fucking. How can I do that?

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    8. Re: It's not about which technology by lostfayth · · Score: 3, Funny

      there's always sex-work.

      you dirty whore.

    9. Re:It's not about which technology by Anarchduke · · Score: 2

      Judging by our history of riots, wars, murders and the like, what the world really needs is less passion and more rational thought.

      --
      who prays for Satan? Who in 18 centuries has had the humanity to pray for the 1 sinner that needed it most? ~Mark Twain
    10. Re:It's not about which technology by wasteoid · · Score: 1

      or drug dealer or wall street crook.

    11. Re: It's not about which technology by t.stedel · · Score: 1

      Or maybe both, as they aren't mutually exclusive, especially if your passion is rational though

    12. Re:It's not about which technology by Touvan · · Score: 1

      MLK, Gandi, etc. passionately perused peace. I'm not sure how passion means war exactly. Science and reason without conscience can be just as destructive or productive as other political motives (or even more so, since it's science, and can do everything better).

    13. Re:It's not about which technology by Touvan · · Score: 1

      er, pursued - why can't I find that edit button...

    14. Re:It's not about which technology by Anonymous Coward · · Score: 1

      > Who would have imagined the current technology landscape and job opportunities back in 1984 or even 1994?

      Me? Lots of people did. They weren't listened to, but they existed. When I would call people up in 1994 to discuss web hosting using PHP instead of Perl, I got some people hanging up. The tech ecosystem is just not that diverse. There are many little re-emergent ideas that have continually failed and it's maddening, how fanboys and senior techs all jump on their new favorite bandwagons to nowhere. Dart/Typescript, D, Go were all DOA. Scala gives all the freedom of Perl but fewer/lesser performance advantages by leveraging the innumerable patterns...and runs on the JVM, oh goody. Just die already. Groovy is useful, for a specific use now. It will slowly be forgotten (Coldfusion part 2!). Closure/Haskell/etc will continue to be rather useful to nobody in particular. Matlab will live on. People saying mobile development using iOS is the modern pathway, are the same people throwing good money after bad and not producing much. Javascript will probably live on until someone makes a runtime for a decent scripting language (Python, PHP, or to save Ruby's ass). If someone makes a new C++ (instead of the innumerable 3rd party libraries and hacks), we will see a new embeddable language that will spread to mobile. Web development is not going away. What mobile development there is, is growing. Use what you can but don't invest decades to master some technology you can approximate in a couple years. You'll do just as well and have more opportunities.

    15. Re:It's not about which technology by Khashishi · · Score: 1

      It seems a lot of people are passionate about money. Does the world really need more of them?

    16. Re:It's not about which technology by Anonymous Coward · · Score: 0

      By leaving the basement of course. I mean bagina rhymes with vagina so the future looks good for you. You just need to seize it.

    17. Re:It's not about which technology by khelms · · Score: 1

      Hey, all the COBOL and FORTRAN programmers are dying or retiring, so any younger people who know those languages can basically write their own ticket!

    18. Re: It's not about which technology by Anonymous Coward · · Score: 0

      You may have been joking but banks still do tons of COBOL and Fortran is used in aerospace engineering all the time. They aren't new and flashy but they aren't dead either.

  57. C++ = unsigned long lookatme = 640000000; by bunbunbun3 · · Score: 1
    Surely it should be javascript:

    var lookatme = 640000000;

    c++

    auto lookatme = 640000000;

  58. My Shop uses... by Charliemopps · · Score: 2

    My Shop uses (in order of importance):
    C#
    Java
    ASP.NET
    All popular versions of SQL (recommend learning MYSQL or PL/SQL first and then the rest of them will be cake)
    Office/VBA (I know this sounds stupid, but you get a lot of requests from office managers with no clue what they are doing in the form of word Docs, Excel spreadsheets, etc... etc... Knowing all the ins and outs of these programs will save you a lot of time. Like how the Excel Average function converts nulls to 0s by default)
    PHP
    VB

    Hope that helps.

    Oh, and I think VM is the way of the future (for good or ill) so I'd get used to using VMs.

    1. Re:My Shop uses... by Anonymous Coward · · Score: 0

      C# is huge. I know it's fun to bash MS, I do it myself, but it pays, and the jobs are plentiful. The nice thing about C# is it covers the entire gamut. You can use it for pure back in automation work, or use it for web application work. The PHP guys make about 1/2 as much as a C# guy in my experience. PHP guys are a dime a dozen, anyone can learn it and everyone does. Supply, meet demand.

      If you aren't making 6 figures after 5 or so years in a particular language, you've picked the wrong one.

    2. Re:My Shop uses... by Anonymous Coward · · Score: 0

      MySQL is an abomination. Learning its dialect of SQL will set you back when you move to a real database. PL/SQL (Oracle, for those that don't know) is also extremely quirky and non-standard. Its dialect, while valuable, should not serve as your introduction to SQL.

      Learn standard ANSI SQL92 first. Then add the SQL-99 and SQL 2003 stuff later. A good way to do this is to become familiar with writing queries for PostgreSQL. It's a real ANSI SQL stickler. Oddly enough, Microsoft SQL Server is pretty good aside from its non-standard delimiters (it uses [square bracketed identifiers] instead of "quoted identifiers"). It's also far more forgiving then PostgreSQL, but not to the level of MySQL.

  59. Re:it's a completely amazing technology... by macson_g · · Score: 0

    There should be '+1 Troll', to reward skillful trolling :)

  60. Re:HTML, CSS, JavaScript and progressive enhanceme by magic+maverick+ · · Score: 3, Informative

    There is no updated version of CSS. CSS 3 is not actually a thing. Instead, there are what are called modules. CSS 2 is a good starting point, because the basics are all in one place. And it's still all valid.

    HTML 5 isn't finalized. Moreover, learning HTML 4.01 (strict) and XHTML 1.1 will (as I pointed out in my post...) teach good habits. (And make a person appreciate the really good parts of HTML 5, like the new form parts.) Oh, and they are still valid...

    Unlike with something like PHP 3 and 4, there is no security risk in using the older versions of HTML and CSS. Moreover, unlike older versions of PHP, knowing the older versions of HTML and CSS can directly translate to knowing the newer versions. (A valid HTML 4.01 strict document is also, with a different doctype, basically a valid HTML 5 document.) PHP has deprecated loads of stuff, and has thrown out a lot of the bad ways of doing things in the later versions. Later versions of PHP are much more coherent than older versions. But CSS 2 is still excellent, if that's all you need.

    --
    HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
  61. Re:HTML, CSS, JavaScript and progressive enhanceme by MrKaos · · Score: 1

    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.

    Though I agree with most of what you have said, I think that also what parts of JavaScript you use is important, combined with some good patterns of design for your code most of which is achieved by convention in JavaScript and C. I've found JavaScript to be quite nice when used in a minimal 'language features' way.

    'Javascript: The good parts' is about as thick as 'The C Programming Language' but not as dense, which sums my comparison of the two nicely.

    --
    My ism, it's full of beliefs.
  62. This should do it... by cloud.pt · · Score: 1

    Just focus on the latest trends of core technologies which some 60%+ employers rely on today: Java, SQL and C variants.

    Specifically to your new market targets, and going away from low level and embedded, I would say you need to go hands dirty with the most popular frameworks for things like web, mobile and distributed systems, which are indeed vast, but if you wanted to evolve one of each I'd say JavaEE/Rails, Android, and JavaEE (again), respectively to each technology. REST/SOAPclient and server knowledge, along with concepts of SOA will also be a plus for general-purpose. If you want to keep your C roots go for the .NET version of those standards.

  63. Best answer (accrding to me): Javascript by Anonymous Coward · · Score: 0

    If you're looking for a way to break into web / mobile, and coming from C-land, I cannot imagine a better starting point than to learn javascript (and HTML/CSS too). It's syntax is based on C and has many of the familiar trappings, it's used extensively in web and mobile application logic and UI logic, and it'll be a part of the web and mobile tech sphere for many years to come.

    It's primarily useful in front-end development, but can also be used in backend development if the company you want to work for uses a javascript server as the backend (such as node.js)

    also, javascript developers are always in demand.

    from there, if you plan to focus more on backend development, your best bets would be to either start learning PHP or ASP.NET

  64. Are you stuck on doing Dev? by Big+Hairy+Ian · · Score: 1

    Try learning about formalised testing (ISTQB), then look at the mobile testing market http://opensignal.com/reports/... and make a killing out of the lack of standards in the Android Market.

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  65. OOO First... by Anonymous+Codger · · Score: 1

    Learn object oriented programming, using Java or C++. That will give you a strong basis for almost anything else you want to do (I used to be a C++ programmer, and was hired as a Java programmer in spite of having no Java experience, on the strength of the C++).

    if you want to do web stuff, learn a little HTML and CSS - you don't need to become an expert because most companies have people who specialize in HTML and CSS. You just need the basics so you can understand and modify pages. Also get familiar with HTTP.

    Then Javascript, followed by some back-end language(s). Start with Java and/or PHP.

    Most professional-grade sites are built on CMS's. Drupal is quite popular. Learn that with PHP and you should have a leg up.

    Be prepared to keep learning new technologies constantly. Things are changing quickly, and even if you establish yourself as a PHP or Java programmer, new libraries are always popping up that you'll need to learn.

    --
    No sig? Sigh...
  66. Web services by Anonymous Coward · · Score: 1

    SOAP and REST (both XML and JSON) web services. This, not HTML, is what makes the web an application platform. Javascript alone does not a web app make.

  67. Add a high-level language by TheloniousToady · · Score: 2

    You're already good at a low-level language, C. Now, add a high-level language (aka "scripting language") like Python. The two are complementary. Low-level is best when computer time is more valuable than programmer time, and high-level is best when programmer time is more valuable than computer time.

    Python is fairly easy for C programmers to learn because it imitates C as much as it can while still being Python. It's also a nice way to learn OOP, if you don't already know that. It's also very pleasant and fun.

    Some people don't like Python's lack of braces, but I think they're mostly being paid off by orthodontists. However, if you appreciate the minimalism of C, you should appreciate the minimalism of Python even more.

  68. My take after 20 years by BillBarnhill · · Score: 4, Informative

    Ok, most of the advice on here seems way off the mark, though some was good. Who am I to say something like that? A self-taught dev making six-figures and having worked 20 years.

    First, always be learning a new technology. Ignore the folks that said stop trying to learn new things.

    As for what to learn, there are two ways to go.

    One way is to track trends. You try to track all the trends and you're head will spin. The major trends though, as I see them, are: HTML/Javascript apps (including mobile apps), functional languages (on JVM learn Clojure, off JVM learn Haskell or Erlang), distributed and parallel computing (which are not the same, here again Erlang is good to learn, Go is another alternative, and Rust will be as well once they stop changing the syntax).

    Another way is to track the kinds of problems you want to solve. If you don't have a kind of problem you are passionate about, find one! That is a key way to differentiate yourself, market yourself, and enjoy what you do. Here though you'll need to do the research. Some popular problem areas right now are healthcare, sharing to address resource scarcity or cost (think Uber), and disaster management. A great way to get involved in these areas and learn while doing is to volunteer. You also will make a lot of great connections, learn a lot, and feel great about yourself in the process.

    To finish: always be learning something new, do something that you are passionate about, and give your time to others because you will be paid back many fold.

    1. Re:My take after 20 years by Anonymous Coward · · Score: 0

      I am surprised that this is the first answer to answer "never stop learning" and "choose and area that has problems you want to solve".

      I know it might sound corny, but if you are looking around for new jobs and you want to be successful, it's the not the technology that will get you through the overtime. At least not for most of the engineers I know. It's that what you are building is solving a problem you feel passionate about.

      I would spend any amount of time, and have spent many hours in the past, learning something new because it might be the best way to solve a problem I feel really passionate about solving.

      This is where "never stop learning" comes in. Read (at least) the wikipedia article on every technology you ever come across, make a little hello world, or whatever your goto demo app is, in anything you can. One day you might have a problem that can be best solved with that thing you remember sort of looking at once, then you can give yourself the opportunity to learn it a bit deeper! The passion for the problem will pull you through. I worked in a few industries, but didn't really start loving my job until I said, I'm passionate about reducing the cost of healthcare so this is the only space I am going to work in. Find a banner to wave.

      Then learn Javascript/HTML/CSS, a mostly functional language and a mostly OO language and a good scripting language (possibly combine these), for when the problem needed to be solved yesterday, so screw 'the best tool' and 'learning' we need to get it done quick!

  69. Expand in what you know by ruir · · Score: 1

    There are a lot of companies/ISP running horrid programs written in Java or whatever not. Learn the APIs for communications and Internet protocols.

  70. For a less snide answer... by MickLinux · · Score: 1

    I would suggest that you ought to forget employability.

    Get the web Version of âoeThe incredible Secret Money machineâoe by Don Lancaster. Then realize that the new growth industry is poverty and homelessness. Invest in that!
    Make a bicycle trailer that can be a really practical camper. Or make a good solar system. Just one product line is all you need for starters.

    Make something that the homeless or soon-to-be-homeless can use to live and survive cost free.

    --
    Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
    1. Re:For a less snide answer... by mysidia · · Score: 1

      Make something that the homeless or soon-to-be-homeless can use to live and survive cost free.

      How will they afford the product; let alone its maintenance?

  71. Dart! by Anonymous Coward · · Score: 0

    Dart! It's time has arrived

  72. there's a lot of "either/or" by buddyglass · · Score: 1

    Do you want to work on the client side or server side? If client, do you prefer Java/Android or Objective-C/iOS? If server-side then the answer is less clear as there are more competing technologies. If you choose to learn a dynamic scripting language I'd choose Python over Ruby or PHP. Having a working knowledge of traditional SQL is usually handy, though, nowdays, you can also pick one of the non-RDBMS alternatives and go deep on that. Coming from a C-based embedded environment I'd recommend you take some time to really "get" object-oriented design so that your Java (or Objective-C) code doesn't look like it was obviously written by a firmware engineer.

  73. C object inheritance by mangu · · Score: 1

    In C you just cannot use inheritance in any useful way

    struct coord
    {
      int x, y;
    }
     
    struct pixel
    {
      struct coord loc;
      int r, g, b;
    }

    1. Re: C object inheritance by Anonymous Coward · · Score: 0

      That's composition, not inheritance.

    2. Re:C object inheritance by Anonymous Coward · · Score: 1

      That's actually composition, and is better than inheritance for certain problems.

      Inheritance usually implies (for me at least) getting the implementation of methods unless specifically overriding them and being able to refer to multiple child classes using a reference to the base class without caring which kind of child class it is. (If you only care about ducks, you're not worried whether you have a mallard or a or a bufflehead).

    3. Re:C object inheritance by wed128 · · Score: 1

      yes, but in C you can use it as both. if you type-pun a pointer-to-struct-pixel to a pointer-to-struct-coord, the addresses work out the same. add a few function-pointers, and you can get some pretty good polymorphism going.

    4. Re:C object inheritance by Anonymous Coward · · Score: 0

      Yeah, because composition and inheritance are totally the same thing.

    5. Re:C object inheritance by _anomaly_ · · Score: 1

      That's not inheritance. That's a workaround to a lack of support for inheritance.

      --
      "I have no special gift, I am only passionately curious." - Albert Einstein
  74. ASP.NET MVC/C# by Anonymous Coward · · Score: 0

    Give ASP.NET MVC a look. It's a server side technology that uses C#. C# is a fun language that doesn't get in your way -- it's a real productivity booster. Especially when using LINQ. Also, Visual Studio is an excellent environment to use C# in.

  75. CSS/JavaScript by Millennium · · Score: 1

    If you thought you knew CSS and JavaScript three years ago, but you haven't done much since then, relearn them. They're rapidly becoming very different beasts from what they once were.

  76. Android by X10 · · Score: 1

    Learn Android. I see a lot of demand for Android developers today. Android requires basic knowledge of Java, but only basic skills. The android framework is very different from other Java frameworks.

    --
    no, I don't have a sig
  77. Learn how to write good web apps by Anonymous Coward · · Score: 0

    Hi,

    My 2c:

    * Learn about HTTP, verbs, and how the "web machinery" actually works. Learn especially about GET /person/1010, PUT /person/1010, POST /person, DELETE /person

    * Learn Javascript. Well. Then learn a good client-side framework: start with Jquery. Then AngularJS, BackboneJS, or Dojo. (Dojo is my choice, but the others are also good. It's a matter of preference.

    * Learn about (Json) REST stores. Basically, it's how you use HTTP verbs to manipulate resources via HTTP.

    * Learn NodeJS. Use ExpressJS, and use a pre-made library (possibly mine, https://github.com/mercmobily/JsonRestStores , but you can use anything) to write JSON REST stores easily

    * Learn how to write good applications: a rich client that works uniquely by making AJAX request (via JSON REST) to fetch, present, and manipulate data; and a server that only implements REST stores (or, very little more)

    *Also learn PHP. It's terrible, but it's here.

    * Be quick. This is not C. A lot of this stuff will be irrelevant soon. Keeping up is lucky, and it takes a bit of luck.

    Note that this is only a possible angle. It's my favourite one though.

    Merc.

  78. short list: HTTP, HTML5, CSS, JS, jQuery, MySQL by Anonymous Coward · · Score: 0

    The title says it all. If you learn nothing else, learn HTTP, HTML5, JavaScript, the JQuery library, and MySQL.

    HTTP is the backbone of much software development, and you need to know how it differs from thicker client/server models.

    HTML5 and its new element types (like Canvas) make a lot more things standard and simpler than older versions. HTML is not just your presentation on the web. Its document structure is the basis for your most important object in JavaScript for the web: The browser DOM (Document Object Model).

    By JS in the title of course I mean JavaScript. On the server you can use JavaScript, Perl, Python, Ruby, or Java. PHP is worth learning additionally, but don't make it the only one of these languages you learn. It's useful but the namespace pollution, rapid feature deprecation and such other nonsense is a nightmare compared to the others. If you learn JavaScript and a couple of libraries (like JQuery and node.js) and you can work on the client side and server side with the same language. This is a pretty handy thing. There are also Perl, Python, Ruby, and Java for the server side. Despite what rumors you may have heard, all of them are alive and well. I prefer Perl and Ruby, and I understand Python's appeal to others. Java has its share of proponents, too, and you might become one of them if you take a look at the options. Lua, Common Lisp, Scheme, NewLISP, Arc, and a few others (even HaXe) are decent ways to handle things too, but they are less commonly used.

    Some of the non-JavaScript server-side languages have strong libraries for server-side control of what's done on the browser without having to know JavaScript yourself. It's still good to know JavaScript and some strong library or framework for the client side. One of the most common is jQuery. YUI, Prototype, Scriptaculous, Google Web Toolkit, Twitter Bootstrap, and ExtJS all serve their purposes, too. I see a lot of work being done on moving from YUI and ExtJS to jQuery though as places standardize on one library throughout their organization.

    MySQL isn't the only database system out there. It isn't even the best. It is ubiquitous. Because it's often the only thing on low-end hosting plans, there's a lot of documentation, tools, and support. Lots of other docs are for people coming from MySQL to other databases. Lots of other databases have come from it or seek to be compatible in some way with it. PostgreSQL is better. I recommend you learn both, and also SQLite. It wouldn't hurt to know Oracle, DB2, and others as well. If you only know one though and you're looking for the most opportunities, learn MySQL.

    That's a start. There's so much more.

       

  79. How about robotics? by SirGarlon · · Score: 1

    Since you are coming from an embedded systems background, have you considered staying with embedded systems? I would expect there will be more need for embedded programmers, not less, as cars get increasingly gadget-laded and Amazon starts delivering packages by drone and whatnot.

    I am just speculating, but I would predict the embedded systems of the future will differ from the embedded systems of today in that they'll have sensors and will be wirelessly connected to the "internet of things." Gadgets like the Arduino and Raspberry Pi boards make it affordable to experiment with building robots at home. :-)

    By all means, pursue smartphone programming if you're interested in it. This is just an option no one else has mentioned yet.

    --
    [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
  80. A Foreign Language? by Anonymous Coward · · Score: 0

    sic

  81. Computers! by penguinstorm · · Score: 1

    There's gold in there.

    --
    Skot Nelson music is my saviour / i was maimed by rock and roll
  82. Stay the course by Anonymous Coward · · Score: 0

    As some others have said, your best bet now is to continue in what you know best. 15 years is a lot of experience in any field -- and embedded is one of the places where the action will continue to be for the next 25 years at least. Automated (e.g. A/I driven design) and inexperienced resources are going to have their limits for at least that long -- and will lose their lustre when their unrestricted use ends up causing one fatal accident or another (for now they're just losing money, but so far the movers and the shakers have found ways to print more of that, mostly by taking it from the rest of us). You may have, or want, to go overseas at some point. While you're skills will continue to be in demand, the work will probably move the BRIC countries (if I were 10 years younger I'd be looking at Brazil) as the US continues to spiral down into economic irrelevance due to the wholesale, unrestrained, looting that has gone in the 30 years.

  83. You need it to write secure code. by Anonymous Coward · · Score: 0

    In order to avoid many of the OWASP top-ten requires a detailed knowledge of not only the difference between GET and POST but also when Cookie headers are posted and when they are not.

    Preventing Cross-site Request Forgery and Crosssite scripting in particular *require* some knowledge of "what is actually happening".

  84. My 2014 goals by Anonymous Coward · · Score: 0

    Forget about extreme security ninja skills! Since I'm saturated on C++. this year my objective are learning serenity and improve my patience, to have better results on handling with sociopath. That's the most intelligent way to have a better comprehension on what actions should be taken before, at and after problems come.

    Cool isn't it? Sometimes the answer can be found on people, and that's will be technology as we know, in the future. :)

  85. Re:it's a completely amazing technology... by Anonymous Coward · · Score: 0

    He must have be stuck on Slackware 6. Its pretty stable these days. No need to learn anything.

  86. Hu? by angel'o'sphere · · Score: 1

    Why don't you just learn/try what interests you most?

    The stuff you ask is just to complicate to answer:
    Mobile:
          Android or iOS, or - safe you god - Windows Mobile?
    While you can program with C for Android most use googles "Java variation" for it. iOS is usually programmed in Objective-C, but can be programed with C++ or with cross platform tools with HTML5 and JavaScript.
    So you see: brought spectrum.

    Web the same problem.
    Hard core developers use plain HTML and JavaScript, based on popular JavaScript frameworks (like JQuery or prototype and such). Server side then is pretty decoupled and everything is possible.
    As well you could use Flash (*cough*) or Silverlight (*cough* *cough*) for your client side stuff.
    On the server everything via cgi (C/C++, PERL, etc.) or PHP (*cough* *cough*) frameworks behind an Apache web server to Java (Servlets/JSP or simple XML based or JSON based transfer) is thinkable.

    I personally use GWT for web stuff ...

    What to do mobile I have not decided yet, I hope and wait for JavaX.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  87. lower not higher by Anonymous Coward · · Score: 0

    Go down on the abstraction ladder not up, learn VHDL, FPGA-s, hardware interfaces. World is full on webpage-monkeys, engineering closer to hardware pays better.

  88. The smallest set... by the+eric+conspiracy · · Score: 2

    Would be Java and HTML.

    Java gets you entry into mobile app writing and a lot of server side stuff for the web at the same time. Plus the amount of Java out there is immense. It's the Cobol of the 21st century.

    HTML gets you into the presentation and UI.

    Later add in Javascript. You can even pick it up on the fly, it isn't particularly hard.

    Good Java and C expertise is a pretty sweet combination.

  89. As a developer and IT Recruiter by Anonymous Coward · · Score: 3, Informative

    I'm a front end developer with around 15 years experience. I spent half of 2013 during a job transition experimenting with IT Recruiting. During sequestration, I spoke with a lot of C/C++ embedded guys that had been happily siloed at government contractors for the last 10-15 years and were suddenly confronted with a job market focused on web/mobile technologies. At least in the Philadelphia market where I work, I can tell you it was very tough for them.

    In my experience these technologies had the highest earning potential and demand in order.

    C#/ASP.Net - these developers had the most power and earning potential in the job market. Managers that took too long in their hiring/decision making process found their first, second, and third choice candidates were all snapped up before they could extend an offer.

    Java - is tenacious and still commands very high salaries.

    Objective C - falls into the category of managers wanting more years experience than the iphone has been in existence, so few developers match the requirements. Very high demand.

    HTML5/JavaScript/Jquery

    1. Re:As a developer and IT Recruiter by Keybounce · · Score: 1

      Objective C - falls into the category of managers wanting more years experience than the iphone has been in existence, so few developers match the requirements. Very high demand.

      Very high demand?

      I started learning Objective C when Apple was called NeXT. I'm one of those "more than the iPhone has been in existence" developers.

      I have not been able to find objective C jobs ... since 2001.

      I thought the market was basically dead. Very high demand?

      Someone half a page up said that programmers needed two skills: How to do your job, how to find a job. I seem to only have half of that skill set.

  90. as a former embedded guy here is my 2 cents by ad5mqesj · · Score: 3, Informative

    I worked for 17 years as a mostly hardware and low level software person, with just enough MFC/Windows/Qt to make reasonable UI's. At the job I started 6 years ago everything is web based "enterprise" software. I now work on a small engineering team (about 8) in a very large company. I got hired for my expertise in C++ an dLinux to work on a biometrics project but as I finished it I needed to acquire skills more generally useful to the team. I started with PHP - it's very C like but with less type safety :). Modern PHP is much more object oriented, if you are comfortable with C++ it'll be very easy. Javascript is absolutely essential; JQuery and Knockout are nearly as essential (frameworks that clean up javascript and make it more portable). Any web app with more than 2 or 3 users needs to use AJAX rather than postbacks to have reasonable performance. In a windows shop you must learn ASP .Net and C#, Ojective C is useful if you want to target Apple products (phones or computers), but with HTML 5 you can do an awful lot without going native. Our apps use an abstarction framework to let one code base target all the popular phone O/S's with pretty standard web apps. (javascript/HTML front end, windows or linux backend REST service) Some SQL is very useful but you don't need to be an expert - any serious web development team will have a database expert who will do the DB stuff, you just need enough to code up test setups, prototypes and to talk to the DB guy. A Pluralsight subscription is very useful (no I don't work for them) I have learned a lot in a short time form their courses. Finally if you are going to work on "Enterprise" development you should really learn about Kanban and agile development since most of them use it in some form.

    1. Re:as a former embedded guy here is my 2 cents by Anonymous Coward · · Score: 0

      "Any web app with more than 2 or 3 users needs to use AJAX rather than postbacks to have reasonable performance."

      Completely false.

  91. go by MartinG · · Score: 1

    golang.org

    Briefly:
    1) Go is a modern "better c from the people who didn't bring you c++"
    2) Go is designed from scratch to make concurrent programming simpler, and believe me they achieved this.
    3) Go is fast, portable, lightweight, simple.
    4) Go is designed and worked on by the likes of Rob Pike & Ken Thompson.
    5) Programming in Go "feels" like c, but with the simple expressiveness of a scripting language. It's both low level and high level, depending how you use it.
    6) The standard library is really good, especially given that go 1.0 only came out in 2.12
    7) The community is even better.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  92. If you give a mouse a cookie, or vice versa by tepples · · Score: 1

    Omnom nom, nom

    I thought the proper sound for cookies was clickity-clickity-click.

    1. Re:If you give a mouse a cookie, or vice versa by arielCo · · Score: 1

      No way I'm getting into that again. I drew the line at resetting.

      --
      This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
  93. Just wants to publish a mobile app and get rich... by Dareth · · Score: 3, Insightful

    The guy just wants to publish a mobile app and get rich... using "the smallest set of 'new technologies" possible.

    The answer is obviously the entire iPhone/Pad development environment and the entire android development environment.

    No need to worry about blackberry or windows phone so that cuts down the requirements a little bit.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  94. Re:Languages are not technologies. Yet you might w by Nemyst · · Score: 1

    RDBMSes are going to die the same way tablets will replace personal computers, ie. not really. Different tools for different purposes. Maybe they'll become rarer, but there are situations where they can't be beat. This is like people saying that Java will replace C++ or that Python will replace Java or whatever other bullshit you get when something new and fancy appears.

  95. You should know by now... by 327 · · Score: 1

    ...that tomorrows tech is just a collection of encapsulated tech from yesterday.

    So learn a couple modern web/mobile frameworks.

    Their structure and workflow will show you current development trends and give you a taste of each piece before you take a deep dive.

    For extra credit (and an enhancement to your adaptability), pick both a popular web stack and an obscure one.

    Anecdotal: After being out of web development for 2 years, I spent last week with jquery/mongodb/backbone/handlebars/bootstrap and feel like I never missed a beat. I feel like I gained a beat! My last project before this was on a LAMP stack, so the transition was not only easy, but also refreshing.

  96. Essential skills for the coming years... by mr_resident · · Score: 1

    Making fire with two sticks.
    Building a shelter with a minimum of resources.
    Foraging for food at night.
    Navigating by stars.
    Hand-to-hand combat.

  97. Learn Meteor by Anonymous Coward · · Score: 0

    Great new web app builder -> https://www.meteor.com/

  98. Poaching by tepples · · Score: 1

    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.

    Of course there are. You can have 10 years combined experience with the tech and its immediate predecessor, such as Android and Sun Java, or iOS and OS X Cocoa. Or you can happen to have worked at the company where the tech was invented, such as someone in the iPod division of Apple while the iPhone was still in development, or someone who worked for Android Inc. before Google bought it. These ads demanding impossible experience smack of wanting to poach from a specific company.

  99. App concepts by tepples · · Score: 1

    If he picks up Objective-C and sticks an app in the App Store

    How should someone go about doing that without running the risk of having Apple reject it because it duplicates the functionality of what's already in the App Store?

    1. Re:App concepts by Bogtha · · Score: 1

      Build an app that doesn't have massive amounts of similar apps in the App Store. Whatever you build runs the risk of being rejected by Apple for any number of reasons, but as long as you stick to the guidelines, the risk is minimal.

      --
      Bogtha Bogtha Bogtha
    2. Re:App concepts by tepples · · Score: 1

      Build an app that doesn't have massive amounts of similar apps in the App Store.

      That requires first thinking of a kind of app that neither has "massive amounts of similar apps in the App Store" nor violates the leaked copy of the guidelines. I imagine that a lot of beginning developers will draw a blank.

      Whatever you build runs the risk of being rejected by Apple for any number of reasons, but as long as you stick to the guidelines, the risk is minimal.

      One problem is that a developer can't even see the latest guidelines without already having paid $1,100 for the devkit (Mac mini + iPad mini + certificate). I signed up for an Apple ID and registered as a developer, but when I tried to view the guidelines, I got an authorization failure because I'm not yet a paid member.

    3. Re:App concepts by Bogtha · · Score: 1

      That requires first thinking of a kind of app that neither has "massive amounts of similar apps in the App Store" nor violates the leaked copy of the guidelines. I imagine that a lot of beginning developers will draw a blank.

      You really have to have a chronic lack of imagination to draw a blank there. Yes, there are several types of app that are over saturated in the App Store. No, that doesn't mean it's difficult to think of anything else.

      With respect to the "leaked guidelines", do you realise this is not secret information and the "leaked copy" is several years out of date? That's a badly misinformed rant written by somebody who clearly has an axe to grind.

      One problem is that a developer can't even see the latest guidelines without already having paid $1,100 for the devkit (Mac mini + iPad mini + certificate). I signed up for an Apple ID and registered as a developer, but when I tried to view the guidelines, I got an authorization failure because I'm not yet a paid member.

      Wow, that's the most disingenuous thing I've seen in weeks. No, you don't have to spend over a thousand dollars buying a Mac, an iPad, and a certificate just to see the guidelines. You just have to have a paid developer account, which costs $99. You've exaggerated the cost by over 1000%.

      --
      Bogtha Bogtha Bogtha
  100. Project Euler by PJ6 · · Score: 1

    Maybe you should turn away from the vagueries and demands of industry for a while and focus on some personal enrichment that will make you a better programmer (yes, even after 15 years), and smarter, too, using the language you already know. Do the first 100 problems at Project Euler. Then later if you still want to learn a new language, you can do them again in that one. Learning new languages this way is whip-crack fast.

  101. One word... by synaptik · · Score: 1

    Plastics.

    --
    HSJ$$*&#^!#+++ATH0
    NO CARRIER
  102. Re:Languages are not technologies. Yet you might w by vikingpower · · Score: 1

    That RDBMS remark has nothing to do with hype. The hyped-up no-SQL paradigm says that no-SQL is good for loosely structured or unstructured data, of which there is actually quite a lot "out there", in the wild. What I see, is different, especially when it comes to the latest generation of graph databases, like neo4J and Titan: as soon as people encounter those technologies, they begin to think differently even about already highly-structured data. As a matter of fact, all data whose structure can be depicted in a relational schema can also be represented by a graph.

    Add to that the growing resentment and inimicity Oracle is encountering with its extant client base, simply because of vendor lock-in. Add to that the natural cap there is on SQL Server usage numbers, due to slowly shrinking Windows ( server-side ) market penetration. Add to that the slow disappearance into gloom of mySQL.

    For sure, very conservative corporate customers, like banks and insurance, will continue to rely upon RDBMSes for a long time. Same thing as for COBOL. You may not believe me, but I am willing to bet several hundreds of euro upon it: 10 years from now, Oracle will be company in trouble ( only their large cash reserve is keeping them outside of troubled waters right now; remember Blackberry ? ) and SQL Server will have dwindled to insignificance. no-SQL databases of a kind and of performance we can, right now, not even yet dream of will rule the roost.

    --
    Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
  103. Learn how to filter by Anonymous Coward · · Score: 0

    You should first learn how to filter out what technologies are essential.
    This skill is super handy for the coming years...

  104. If you like C... by OrangeTide · · Score: 1

    Then keep doing C. Many companies are hiring C developers these days, the mobile processor vendors are grabbing as many C folks as they can to support Linux device drivers (Linux is the basis for Android and ChromeOS).

    If you don't like C, then find something you do like. There are even jobs out there for people who are into SmallTalk (mostly to do business logic in European markets). The new programming languages that get most of the media attention are interesting as well, but aren't the only jobs out there. And honestly if you haven't picked up on them now, you might find yourself a bit behind the competition when you go to apply for that dream job in Haskell, OCaml, Go or Rust. (or Python, Erlang, ...)

    --
    “Common sense is not so common.” — Voltaire
  105. Soulskill alters post submissions too by Anonymous Coward · · Score: 0

    My original submission (ClarityRay vs adblock) http://slashdot.org/submission... vs. what he put up instead, completely altered http://ask.slashdot.org/story/...

    * Notice ANY difference there? I do... that, folks, is bogus to do!

    APK

    P.S.=> Between crap like that & the troll infestation + those gaming & cheating the easily beaten so-called "moderation system" here (downmodding others, logging out and trolling by anonymous coward posts AND using multiple registered account sockpuppets etc.)? This site's really going downhill - especially when downmods are applied to posts that have facts in them that the trolls can't disprove (such as my posts on hosts' value in added speed, security, reliability, and even anonymity http://ask.slashdot.org/commen... that NOBODY can disprove here, or elsewhere, online - makes me laugh, since truth inevitably & invariably, always wins out in the end...)

    ... apk

  106. I'm a .Net Developer by Anonymous Coward · · Score: 1

    I started with .net c# 13 years ago. It has pretty good feature parity with java, in some cases better. Much worse memory management. I actually enjoy java much more. I cant make the switch because of experience. But you can do the same things in .net as in java. Not defending microsoft but they are really, really close and in most cases can accomplish the same tasks. Now running the bloated framework on a win server versus java on a nix box is a different story. Java can run allot more with less.

    I also see tones more jobs for java (in silicon valley) than net.

  107. Dynamically Typed, Higher Level by wangstabill · · Score: 2

    Let me give you some advice, as someone who went to school for Computer Engineering (very aware of embedding programming) and now works for a major Internet browser vendor. C may have been considered high level back in the day, but relatively speaking is now one of the lowest level programming languages. While it's simple, and fast, it is verbose as hell to write anything useful. C's idea of portability is also bizarre, relative to modern higher level languages (autotools generates thousands of files). I love C, and it's my go to for lower level languages. I just cannot keep track of all there is to C++, it's like a dog that kept getting legs nailed to it until it was referred to as an octopus. C++ is a great language, but it's not for me. I have one lower level language that I'm expert in, and one higher level language that I'm expert in. Java, and C# in my opinion don't differentiate themselves enough from C (by design) as a dynamically typed language would.

    That said, it's worthwhile to learn multiple different languages, even if you don't master them, because each one has something to teach you, will change how you think of programming, and make you more effective in programming with other languages as you can reuse interesting patterns. Seeing other people say "don't follow new trends" is disappointing; it's so close minded that it's sad to see that they've closed themselves off from learning new paradigms.

    As far as higher level language is concerned, I'd recommend JavaScript. It's dynamically typed, which should be a new paradigm for you. Its loosely typed nature shouldn't be completely foreign to a C programmer (unless you don't understand C's implicit promotion and conversion rules). JavaScript is pervasive and you don't need an IDE for it (not like making an IDE for a dynamically typed language is trivial); just fire up your browser and you can play around with it. You'll find the web to be much more portable for your programs (though it's still not a perfect solution). JavaScript can also be used for the back end as well, with the Node.js runtime. Further, there are even higher level languages like TypeScript or, my favorite, CoffeeScript. CoffeeScript combines some of my favorite parts of Ruby and Python, but if you're not careful can generate some awful JavaScript (returning the evaluation of a for loop), but you can do the same with mistakes with C (generating awful assembly). JavaScript will also open you mind to functional programming, while not forcing it down your throat.

    PHP was my first love, but many developers fail to recognize it as a language and think it's tightly bound to Apache. Ruby has some of the most mind bending metaprogramming features, but the performance pails in magnitude to modern JavaScript VMs. Python's community has a split that I see as detrimental between 2.X and 3.X, but has some great features of the language. I'm really not sure what differentiates Perl anymore, as its regex functionality has been borrowed by Python, Ruby, and JavaScript. Lua might be useful in place of JavaScript, as it's embeddable within C projects and is used frequently in scripting game engines (so I would recommend that, or JavaScript). That said, I have learned something useful from all of the above, and am glad I took the time to learn more about them, even if I did not choose to master them.

    For my senior design project, I used C in an embedded device, as well as CoffeeScript to receive info and display it via a web interface. It was awesome to have such fine grain control of the bits when I needed, and the ability to create a Hash with a literal when needed. That's why I recommend on mastering one low level and one high level language.

    For a quick intro I gave recently on JavaScript: http://mozilla-ntu.github.io/s... For more on C and JavaScript: http://nickdesaulniers.github....

    If you don't agree that higher level is the way to go, Rust has an interesting new approach to systems programming, even if the APIs change every (still in beta) release.

  108. Windows 8 by roc97007 · · Score: 1

    Just kidding.

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  109. Two Killer Apps: by Anonymous Coward · · Score: 0

    Reading and writing. If you haven't heard of these killer apps, check wikipedia.

    Yours In Obscurity,
    K. Trout

  110. Go functional by Anonymous Coward · · Score: 0

    If you want to learn something, which will become a standard, then learn a functional language. Haskell, SML, Erlang, clojure etc. Now we have 8 cores in our computer, but in 10 years it will be 100 to 1000. Good luck taming that beast with javascript. Besides that, it pays the bill: http://www.tsurucapital.com/en/jobs.html#programmer

  111. What do you know already? by gurps_npc · · Score: 1

    If you don't know HTML, PHP, and javascript, then you should learn them.

    --
    excitingthingstodo.blogspot.com
  112. Tell me where your sites are. by Anonymous Coward · · Score: 0

    I will base my opinion of your post on the quality of your work.

  113. Stop making me sick! by Anonymous Coward · · Score: 0

    Javascript is hurl inducing. I'm losing my lunch right now just thinking about using javascript on the back end.

    The future of javascript programming is in getting rid of as much javascript as you can. Otherwise we are doomed.

    1. Re:Stop making me sick! by Anonymous Coward · · Score: 0

      Poor you! Have some coffee instead, it may reduce the symptoms. There's also other medication available, but coffee(script) is the first thing to try if your stomach can't take java(script).

    2. Re:Stop making me sick! by Anonymous Coward · · Score: 0

      To paraphrase Mark Twain (or Charles Dudley Warner):

      "Everyone complains about Javascript, but nobody does anything about it."

  114. UTF-8 is kinda like ASCII ??! by Anonymous Coward · · Score: 0

    Actually, most developers and a lot of systems I encounter use a character encoding that they say is UTF-8, but actually kinda uses ASCII. This causes all sorts of interesting issues, which is why I've dubbed this encoding WTF-8.

    you might want to watch this video from Computerphile: Characters, Symbols and the Unicode Miracle

    understanding is important and this is interesting stuff :D

  115. NOT javascript, php, or java by Anonymous Coward · · Score: 0

    NOT javascript, php, or java. Those are the tools of the dead men walking. They don't realize it. It is really sad.

    Every kid is learning those - do you want to compete against people with 4 months experience happy to make $10/hr?

    Learn something slightly less popular, but stull highly capable. You pick.

  116. Re:HTML, CSS, JavaScript and progressive enhanceme by Anonymous Coward · · Score: 0

    People always love say that PHP is bad.
    And then they always like to forget that facebook is built on it as well(okey they turn parts of it into bytecode, but still, so can you)

  117. Screw that, become a sysadmin. by Anonymous Coward · · Score: 0

    About the same pay and you don't have to use your brain for work. That is what I did. Now I only code open source and get paid just as well for menial work as I did for constantly worrying about deadlines.

  118. Re:Languages are not technologies. Yet you might w by Hognoxious · · Score: 1

    But they aren't webscale, because they use joins.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  119. Object C by soumen_78 · · Score: 1

    Object C is the language to go for!!... Mobile technology in the coming years will just take over all other technologies!! ... In fact we are into mobile game development ( http://www.xcubegames.com/ ) and can say what 'huge' is coming in the mobile world!!

  120. The Guidelines are still confidential by tepples · · Score: 1

    You really have to have a chronic lack of imagination to draw a blank there.

    The difference is that as a student or as an employee, one has a boss to tell him what to make. In order to get onto the App Store, one has to stop thinking like an employee and start thinking like an entrepreneur, and some people might have a hard time making that change.

    With respect to the "leaked guidelines", do you realise this is not secret information

    I fail to see how it isn't secret. When one signs up for a free developer account on Apple.com, he has to agree to a non-disclosure agreement stating that any information on Apple.com behind a paywall is confidential. This means, for example, that the Guidelines are confidential.

    That's a badly misinformed rant written by somebody who clearly has an axe to grind.

    So how would one go about refuting that rant without violating NDA?

    No, you don't have to spend over a thousand dollars buying a Mac, an iPad, and a certificate just to see the guidelines. You just have to have a paid developer account, which costs $99.

    In other words, you are claiming that one should buy a paid developer account, read the Guidelines, and then buy a Mac on which to run Xcode and an iPad mini on which to test an application. Do I understand you correctly?

    1. Re:The Guidelines are still confidential by Bogtha · · Score: 1

      In order to get onto the App Store, one has to stop thinking like an employee and start thinking like an entrepreneur

      This is nonsense. You don't have to "think like an entrepreneur", you just have to pick an idea that hasn't been done to death.

      I fail to see how it isn't secret.

      Anybody with $99 can see it. The cost is the only barrier to seeing it. That's not a secret, that's charging money for something.

      So how would one go about refuting that rant without violating NDA?

      Why don't you compare the review guidelines it links to with what it claims those review guidelines state? It misrepresents the document it links to. One of the bullet points even admits that it might be wrong, but they don't know because they don't have all the information.

      No, you don't have to spend over a thousand dollars buying a Mac, an iPad, and a certificate just to see the guidelines. You just have to have a paid developer account, which costs $99.

      In other words, you are claiming that one should buy a paid developer account, read the Guidelines, and then buy a Mac on which to run Xcode and an iPad mini on which to test an application. Do I understand you correctly?

      You're not even attempting to understand me, you're trying to ignore my point and push one of your points instead.

      You claimed you had to spend more than a thousand dollars to get your hands on the review guidelines. That's clearly absolute bullshit. My point was that your claim was utterly false. Your response to that is not to hold your hands up and admit what you said was untrue, your response was to try to push another point while ignoring the fact you got caught in an outright lie.

      You aren't arguing in good faith, so it's pointless continuing. If you would like to argue in good faith, then you can start by admitting you dishonestly inflated the cost of obtaining the guidelines by over 1000%.

      --
      Bogtha Bogtha Bogtha
    2. Re:The Guidelines are still confidential by tepples · · Score: 1

      I plead guilty. Repaired.

  121. Cost is per platform by tepples · · Score: 1

    as long as you stick to the guidelines, the risk is minimal.

    One problem is that it costs at least $99 to even see the guidelines. I signed up for an Apple ID and registered as a developer, but when I tried to view the guidelines, I got an authorization failure because I'm not yet a paid member. And once a developer finishes paying $99 for iOS guidelines, $99 for Mac App Store guidelines, $99 for Windows store guidelines, etc., he's out quite a chunk of pocket change.

  122. Honestly,... by Anonymous Coward · · Score: 0

    Honestly if you don't already know, you'll never get your timing right anyway...

  123. New for the world? or New for you?? by Anonymous Coward · · Score: 0

    Some knowlidges are very old, very deep, and very useful.
    Here's the list I been learning for past decade:

    1) Regular Expression ( very useful, it gave me many ways to shortcut the hardwork )
    2) Garbage Collection ( it's so cute once you know about it )
    3) Prologue
    4) Expect ( not the language itself, but reason we needed this, was very interesting )
    5) TCP/IP ( especially concept of sliding window helped me a lot when I needed rough flow control feature )

    I know none of them are new, even 10 years ago. But people told me it worth learning even 10 years ago, and at least for me, they were right.

  124. I would learn medicine. by Anonymous Coward · · Score: 0

    In my view, it will take your lifetime for salaries in third world countries to rise to the sinking level of 2nd and first world countries.
    You are best to consider a career that takes IT as a hobby, but which will reward you with continuous work from graduation to retirement.

    I was lucky. I got into IT in the late 1950's, with the boom. However, after 2000, work started to migrate to India, Malaysia, etc. If however, you from those countries, then I would definitely make IT a career.

    I would learn Linux, object oriented design, functional design, and business functionality. By the latter, it is to understand about the detailed functioning of every department of an enterprise, from sales, finance, warehousing and logistics, manufacturing, distribution, Human Resources, Engineering, etc. Be able to apply your skills in those areas, and do take advantage to become the corporate specialist who knows it all.