Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Moving to different language?

Options
  • 31-12-2015 9:47am
    #1
    Registered Users Posts: 5,239 ✭✭✭


    I have about 2 years experience with Oracle DB development, from PL/SQL to Apex. It's a good language but I wouldn't say I'm passionate about it. I always envisioned myself moving into Java as that is what I really enjoy. However my company does not use Java at all and I'm at a loss as to how I might move in that direction. Most junior positions require at least a years commercial experience with core java or JEE.

    I'm at a point where I need to make a decision, fairly quickly. I'm junior enough that I can try and make a break and try to get a java position (I'm sure my PL/SQL background would help) without a significant salary hit. On the other hand, I could go all in with Oracle technologies and in a few years become a specialist in Oracle development, but I'm not sure I would be entirely happy.

    Can anyone provide some insight or advice for me? Wondering has anyone else been in this situation...


Comments

  • Registered Users Posts: 768 ✭✭✭14ned


    Elessar wrote: »
    I have about 2 years experience with Oracle DB development, from PL/SQL to Apex. It's a good language but I wouldn't say I'm passionate about it. I always envisioned myself moving into Java as that is what I really enjoy. However my company does not use Java at all and I'm at a loss as to how I might move in that direction. Most junior positions require at least a years commercial experience with core java or JEE.

    I'm at a point where I need to make a decision, fairly quickly. I'm junior enough that I can try and make a break and try to get a java position (I'm sure my PL/SQL background would help) without a significant salary hit. On the other hand, I could go all in with Oracle technologies and in a few years become a specialist in Oracle development, but I'm not sure I would be entirely happy.

    Can anyone provide some insight or advice for me? Wondering has anyone else been in this situation...

    The mark of a top tier senior dev is the ability to write high quality, if not idiomatic nor high performance, code in almost any language.

    I have written production code in at least twenty languages in the past decade, some in domain specific micro languages I invented for a given problem as that can be a much better solution sometimes. I would be the most proficient in C++, Assembler (x86, x64 and ARM), C and Python in that order, but I've also written substantial programs in Javascript, XSLT, C#, VB.NET, Tcl, Rust, Ruby, PHP, shell script and written bits and pieces in Haskell, Erlang and R.

    Now I wouldn't claim that the code written in my non proficient languages was pretty nor performant, but it had a good unit test suite, handled failures correctly, and it was maintainable. It did the job.

    My point here is that with enough experience, you get to see the commonality between all programming languages. PL/SQL is nothing special, it's just yet another domain specific language expanded perhaps a bit further into a general purpose language than could be considered wise. Fundamentally speaking, it walks and quacks like any of the .NET languages or Java.

    So I'd suggest this way of looking at your situation: it doesn't really matter what you program in, it's all fundamentally the same in the end, and the skills learned in one language can be transferred to all others. You can have personal preferences for some languages over others, but if you choose to view it as such, they are all variations on the same thing.

    Now, if you real question is about employment strategy i.e. what technologies should you specialise in to make the best career you can given where you are now, that is a totally different question. If that is what you are really asking, I can tell you that specialising into a vendor specific technology will exchange role stickiness for income, so you'll get an income bump in exchange for finding it harder to find open roles in that technology but also it's harder to get fired from a role in that technology too. Some vendor specific technologies (e.g. in finance) pay a thousand a day or more, but a new role may only appear a few times per year anywhere in the world.

    Specialising also requires you to invest more in keeping yourself up to date, and puts the risk of that specialism going out of favour onto you and your family. You'll also get exposed more to the technology cycle, so more feast and famine.

    It's all relative though. As a Java dev there are plenty of jobs right now in Ireland, and the top pay as a senior dev isn't too bad relatively speaking. However in the long run (10+ years) Java outside of Android is dying, and everybody knows it, so it's probably a bad long run choice.

    A much better choice is probably Python. Harder to find work in Python in Ireland except in Dublin where they are screaming out for devs and willing to pay a small premium for them, but probably a better long run choice as its star is rising in Silicon Valley, so it's likely the Java of the 2020s. Getting in there now is probably a very wise long term move in Ireland as we lag Silicon Valley by about five to ten years.

    Another choice is to specialise into multiple vendor specific technologies, and so spread your bets. Adding some ERP specialisations like in SAP could make you a specialist in vendor specific technologies, which is also very well paid though you'll need to be willing to relocate to where the work is.

    All hard choices I know. And you'll need to rise every morning two hours early to study, and dedicate your Saturdays to study too for at least three years to get in your 2,000 hours to become reasonably proficient in something. Such is the life of a technology professional, it's not supposed to be easy, if it were everybody would be doing it.

    Niall


  • Registered Users Posts: 5,239 ✭✭✭Elessar


    Great reply cheers Niall.

    I suppose my question relates to both sides. Employment strategy and job enjoyment. PL/SQL is good and is similar in many ways to Java, but I find it very 'static' and a bit restrictive, at least from what I work on. I find Java much more rich and varied in what I can do, and I enjoy OO languages (and Java is almost everywhere). In saying that employment wise I feel I would be much better sticking with it. Part of the problem lies with the place where I work - development is not taken as seriously as it should be. There are no methodologies followed (agile etc), no version control, no coding standards...basically they just care about the end game (i.e. software that works). Contractors come and go, some code is written one way, another, another way and so on. I'm pretty much left to my own devices aswell, but I don't feel as if I'm truly learning enough or concentrating on pure development (and I have raised this with them). Maybe I would be happier in an actual development company, where I could learn all these things....


  • Registered Users Posts: 768 ✭✭✭14ned


    Elessar wrote: »
    Part of the problem lies with the place where I work - development is not taken as seriously as it should be. There are no methodologies followed (agile etc), no version control, no coding standards...basically they just care about the end game (i.e. software that works). Contractors come and go, some code is written one way, another, another way and so on. I'm pretty much left to my own devices aswell, but I don't feel as if I'm truly learning enough or concentrating on pure development (and I have raised this with them). Maybe I would be happier in an actual development company, where I could learn all these things....

    :)

    You can work at Microsoft or Google or Adobe, all mostly software companies, and see exactly the above too. There is a huge variance between divisions and teams in any large org.

    Putting on my hat as a professional remote working consultant, the contracts I specialise are ones where the software is an R&D prototype being prepared for commercialisation, or where some software has become unstable and the local team have run out of options, solutions and time, and money is no object to getting it fixed.

    Basically I set up automated tooling to apply a ton load of rigour to a codebase, and the team drives down the correctness defects found by the automated tooling to zero. Generally this has an enormous positive effect on product quality, and clients are usually very pleased though I notice they tend to end my contract sooner than I'd recommend, so generally they seem to want the low hanging fruit or "just enough" rather than finishing the job. That said, I am expensive :).

    The work is usually fairly boring and doesn't tax me intellectually or skills wise at all, but it is very well paid, there are no death marches, you choose your own hours and you don't have problems with your advice not being taken seriously. It works for me. Outside the day job I invest 25% of my time developing Boost C++ Libraries using nothing but bleeding edge technologies with the ultimate aim of getting them standardised into C++ itself. Keeps me sane and upskilled.

    Niall


Advertisement