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
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

most efficient languages for different programming scenarios

  • 22-05-2015 12:25am
    #1
    Registered Users, Registered Users 2 Posts: 476 ✭✭


    im looking for a bit of guidance on the best languages i should learn for certain scenarios. I prefer to learn something completely in full e.g at the end im satisifed i can do anything on it and have all necessary languages under my belt, any corrections/ constructive criticism would be appreciated. I understand that opinions may be subjective but all are welcomed.

    1)Web development
    front end
    a)HTML,XHTML,XML - have knowledge of HTML but should one bet concentrated on more so?
    b)CSS/SCSS/SASS/SUSY - which one is best to go for
    c)Javascript-JQuery
    Back end
    a) Ruby on Rails/PHP - unsure of which one is better/differences
    b) AJAX/ASP
    c) SQL
    additional
    not much knowledge on these but read they may be userful:
    Perl, Python, VisualBasic

    2)app development
    is it simply just:-
    android = Java
    IOS - objective C
    any cross platform languages which would be strong?

    3)addition questions
    a) C against C++: which one should be taken and perfected?
    b) C# against C/C++
    c) As time goes on I hope to get into Web development, app development and game development. I have previously made good progress on android app development but stopped. Restarting the learning this month and shoud i take apps/web/games first and cover in detail?
    d) what is the potential of programming programs, i understand it may sound stupid, but web/app/game they all have an obvious goal, if C languages learned what potential could it hold for an entrepreneur?
    e) If i wish to enter the sector of computer games, what languages/programming languages needed? i dont mean a GTA game, just lets say a little addicting game running of flash/unity or whatever else.

    Thank you in advance


Comments

  • Registered Users, Registered Users 2 Posts: 1,275 ✭✭✭bpmurray


    RoRo979 wrote: »
    1)Web development
    front end
    a)HTML,XHTML,XML - have knowledge of HTML but should one bet concentrated on more so?
    There isn't a huge difference between HTML and XHTML, but I haven't seen much XML for a while. HTML is definitely the #1 but I'd make sure to be aware of the nuances of the different DTDs for XHTML.
    RoRo979 wrote: »
    b)CSS/SCSS/SASS/SUSY - which one is best to go for
    It's all translated back to CSS so that's absolutely essential. After that I suppose LESS and Sass are most popular although, frankly, I've never seen the advantages.
    RoRo979 wrote: »
    c)Javascript-JQuery
    Plain old Javascript is really important - it's amazing the number of folk who fail interviews because they can't think of how to do stuff using JS, having locked themselves into one particular framework. That said, JQuery is important, including JQuery-UI and JQuery-mobile. Also important are Bootstrap and AngularJS and any number of other specialist libraries.
    Back end
    a) Ruby on Rails/PHP - unsure of which one is better/differences
    b) AJAX/ASP
    c) SQL
    I'd go for (in order):
    a) Java, including Swing and JSF with JSP
    b) node.js
    c) C#, including MVC with ASP
    d) Ruby (a prerequisite for Ruby on Rails) and/or Python
    additional
    not much knowledge on these but read they may be userful:
    Perl, Python, VisualBasic

    2)app development
    is it simply just:-
    android = Java
    IOS - objective C
    any cross platform languages which would be strong?
    By "app" I presume you mean "mobile". Don't forget the hybrid environments - Apache Cordova and the variants (Adobe's Phonegap, IBM's Worklight, etc.). The reality is that many solutions can be created for multiple platforms using these in a fraction of the time it takes to create a native app for one platform.
    3)addition questions
    a) C against C++: which one should be taken and perfected?
    This is the old misunderstanding: C++ is NOT C! If you're working on embedded stuff or situations where you have limited resources, C is a definitely a requirement. C++ requires much more work to make as small, although it can be done. For perfection of either it takes many years!
    b) C# against C/C++
    WTF?!?!? Apples != oranges
    C# is Microsoft's answer to Java and is completely unrelated to C (apart from the obvious ancestry thing). This should really be phrased as "C# against Java"
    c) As time goes on I hope to get into Web development, app development and game development. I have previously made good progress on android app development but stopped. Restarting the learning this month and shoud i take apps/web/games first and cover in detail?
    d) what is the potential of programming programs, i understand it may sound stupid, but web/app/game they all have an obvious goal, if C languages learned what potential could it hold for an entrepreneur?
    e) If i wish to enter the sector of computer games, what languages/programming languages needed? i dont mean a GTA game, just lets say a little addicting game running of flash/unity or whatever else.
    Unity is a good place to start - stay away from Flash.
    Thank you in advance

    I think your heart is in the right place but you need to adjust your head. Creating a game may be good motivation to learn a technology, but it's definitely not where you should start. You first need the pieces - there are so many questions you need to answer:
    If your game needs a backend, what kind? How do you connect? (last year it was SOA, this year it's REST, next year it'll probably be MQTT). For the front end, how do you do motion? Do you write your own physics engine? What's a physics engine? What about surfaces and motion? How's your matrix multiplication? What's your story board? How do you do graphics? Can you draw?
    First you need to think about the fundamentals - can you program? That's not a question about programming languages but rather one of problem solving. Think about how you prove that your solution is correct. Something you completely missed is the whole idea of good engineering practices - for example, read up on Test-driven development since that's one thing that will save you so much time it's shocking.

    Anyway, good luck with this!


  • Registered Users, Registered Users 2 Posts: 2,655 ✭✭✭draiochtanois


    This post has been deleted.


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    Luckily enough i actually am good at problem-solving and am a very logical thinker. When I was learning before started with HTML and CSS and found they were slow, but once I got started with Java the challenges,self-actualisation kicked in and i loved it. I plan on submersing myself in programming knowledge from next month onwards but just want to make sure i am learning the right things in the right order e.g if i want to make an app first learning HTML,CSS would be pointless or instead of learning CSS then adapting to SASS/SCSS mayeb would be wiser to just start on them.

    As for game deveopment, it is my weakest are no doubt about it, I think it would be wisest for for me to take that area last, however as for engines I did some research into Havok's "Project anarchy" and found it useful. My college course will bring me down the game end of programming so I will leave that to them to guide me. Websites and Mobile Apps are where my main interest is simple due to good potential.

    so just to ensure im on the right track:-
    Web development
    I will learn:-
    HTML and move onto XHTML then
    CSS/SCSS/SASS do further research and fin which is best
    Javascript core then spread out into JQuery, Bootstrap, AngularJS and additional research on other beneficial ones.

    as for backend:
    I will learn as you say is best:
    as for the last part Ruby V python. in your personal experience is one better than the other, i get the feeling ruby is more specialised while python could be used for me things but thats an uneducated assumption.

    PHP + Perl: out of matter of interest why did you not mention these 2, I always see lots of talk about PHP.

    App development
    JAVA will be learned regardless so I will have android covered. I do not wish to learn objective C/swift just for IOS, I did some research and Cordova looks like what I should use, any major disadvantages in using this inseatd of native Apps?


  • Closed Accounts Posts: 4,763 ✭✭✭Fenster


    bpmurray wrote: »
    It's all translated back to CSS so that's absolutely essential. After that I suppose LESS and Sass are most popular although, frankly, I've never seen the advantages.

    You clearly aren't frontend. :pSass and LESS are preprocessors for CSS that allows you to utilize mixed indexed and associative arrays, variables, functions, functions with further CSS called mixins. Well-applied Sass can lead to a dramatic reduction in the amount of code you need to write, while maintaining high readability.

    While a lot of novices will stick to straight CSS, Sass is a workhorse of professional frontend development-everyone all the way up to Google and Mozilla use it.


  • Closed Accounts Posts: 9,700 ✭✭✭tricky D


    RoRo979 wrote: »
    Web development
    I will learn:-
    HTML and move onto XHTML then

    Any reason not to go straight to HTML5?

    Previous versions might be worth having a look at but they don't follow current principles of separating content (HTMLx) and presentation (CSSx); XHTML provided a sort of convergence with XML; and HTML5 is where it's at now for loads of reasons.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 11,989 ✭✭✭✭Giblet


    Ignore XHTML completely, pretend it never existed. HTML5 only.


  • Registered Users, Registered Users 2 Posts: 1,275 ✭✭✭bpmurray


    Giblet wrote: »
    Ignore XHTML completely, pretend it never existed. HTML5 only.

    +1


  • Registered Users, Registered Users 2 Posts: 1,275 ✭✭✭bpmurray


    Fenster wrote: »
    You clearly aren't frontend. :pSass and LESS are preprocessors for CSS that allows you to utilize mixed indexed and associative arrays, variables, functions, functions with further CSS called mixins. Well-applied Sass can lead to a dramatic reduction in the amount of code you need to write, while maintaining high readability.

    While a lot of novices will stick to straight CSS, Sass is a workhorse of professional frontend development-everyone all the way up to Google and Mozilla use it.

    I suppose not much of a frontend - only about 20m end users, although that's dwarfed by the 100m+ backend consumers. :cool:

    My point was that CSS is what all this stuff ultimately becomes, so it's critical to understand that thoroughly before being caught up in the Sass/Sccs stuff. One major blocker to their use is that there is no single cross-platform solution with a single non-viral licence, which means that the legal folk are unhappy with them. Unfortunately, that's something that you also have to consider in the corporate world.


  • Closed Accounts Posts: 2,103 ✭✭✭Tiddlypeeps


    You can tick a lot of boxes on your list off by learning C++. It runs on both Android and iOS, so can be used for app development (I don't want to mislead you, most companies that do native development use both objective-c and java for these). If games are your end goal then it's a great language to have because it's commonly used across the board, from 2D mobile stuff all the way up to the big AAA titles.

    If you can master C++ pretty much any langue after wards is a piece of cake, mostly because it's one of the harder languages to master, which is also a downside.

    The games stuff these days is much easier to get into than it used to be. A lot of engines handle a lot of the difficult stuff for you, you almost never have to touch openGL or the base rendering engine anymore and the same for physics etc. While it's good to eventually gain decent understanding of all those things it's not a necessary requirement upfront. If you go the C++ route then something like Cocos2D-x would be good to start messing around with. It operates a lot like flash on the surface, so it's very easy to get into and start getting things moving around without needing to fully understand a lot of concepts or even having a full understanding of C++, but it's also robust enough that when you do want to start messing around with bigger things it can handle it.


  • Closed Accounts Posts: 4,763 ✭✭✭Fenster


    bpmurray wrote: »
    I suppose not much of a frontend - only about 20m end users, although that's dwarfed by the 100m+ backend consumers. :cool:

    My point was that CSS is what all this stuff ultimately becomes, so it's critical to understand that thoroughly before being caught up in the Sass/Sccs stuff. One major blocker to their use is that there is no single cross-platform solution with a single non-viral licence, which means that the legal folk are unhappy with them. Unfortunately, that's something that you also have to consider in the corporate world.

    Square peg, round hole with licenses and legal. I've already run into this from the other side. IMO, it would make more sense if everyone just accepted the bloody licenses without feeling a reflexive corporate need to fight them.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    Ill stick to just HTML5 so, i remember reading somewhere that xhtml was brought it to give more flexibility or seomthing similar so i though it would have been powerful. I dont mind a steep learning curve, i actually prefer it, its just at the end i want to be satisfied knowing that the languages i have are the best for what I want to do, assuming no new strong ones increase in popularity.

    so for Mobile Application development what is truly the best way, taking all factors into consideration, so i assume native apps will run best and is thus the best way but apart from this, C,C++,Cordova??
    This is the old misunderstanding: C++ is NOT C! If you're working on embedded stuff or situations where you have limited resources, C is a definitely a requirement. C++ requires much more work to make as small, although it can be done. For perfection of either it takes many years!
    previous user stated that C would be preferable over C++,does this matter for app dev?
    One major blocker to their use is that there is no single cross-platform solution with a single non-viral licence, which means that the legal folk are unhappy with them. Unfortunately, that's something that you also have to consider in the corporate world.

    apologies but i dont understand what you mean? are you saying a website i develop for commercial purposes with this language has legal issues?


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    That list should keep you busy for a decade or two.


  • Registered Users, Registered Users 2 Posts: 11,989 ✭✭✭✭Giblet


    Fenster wrote: »
    Square peg, round hole with licenses and legal. I've already run into this from the other side. IMO, it would make more sense if everyone just accepted the bloody licenses without feeling a reflexive corporate need to fight them.

    Ah now, I can't just be accepting GPL willy nilly! I just don't use GPL'd software. Otherwise I'd have to open source my companies software! For personal projects for fun, yeah why not, but GPL is pretty crappy in a lot of respects.


  • Closed Accounts Posts: 2,103 ✭✭✭Tiddlypeeps


    RoRo979 wrote: »
    so for Mobile Application development what is truly the best way, taking all factors into consideration, so i assume native apps will run best and is thus the best way but apart from this, C,C++,Cordova??

    There is no one best way. It depends on what you want to do.

    If you are targeting just Android then Java is the way to go. For just iOS it would be Objective-C. If you want to develop a single solution for both (which isn't always the best approach) you would use C++.

    If it's mobile apps you want to move into then in the short term I would recommend picking one platform and specialising in it. Most companies will have an iOS and Android team so becoming a jack of all trades will just make you a weak candidate for both where as in the same time frame you could become a strong candidate in one or the other.


  • Closed Accounts Posts: 4,763 ✭✭✭Fenster


    Giblet wrote: »
    Ah now, I can't just be accepting GPL willy nilly! I just don't use GPL'd software. Otherwise I'd have to open source my companies software! For personal projects for fun, yeah why not, but GPL is pretty crappy in a lot of respects.

    I don't think you're wrong any more than I am, because it all comes down to what you want to do and how you want to do it-I prefer the GPL and strategize for it while you do the contrary-but we're getting beyond the scope of the thread. :)


  • Registered Users, Registered Users 2 Posts: 1,275 ✭✭✭bpmurray


    RoRo979 wrote: »
    so for Mobile Application development what is truly the best way, taking all factors into consideration, so i assume native apps will run best and is thus the best way but apart from this, C,C++,Cordova??
    For mobile, unless there are strong reasons (usually for games) to use native stuff, I'd go for Cordova. Otherwise it's Java and Objective C (or C++ for Windows).
    previous user stated that C would be preferable over C++,does this matter for app dev?
    "app"? You mean developing applications or mobile apps? C++ has more libraries, etc. to help with developing applications, but C can be made tighter, smaller.
    apologies but i dont understand what you mean? are you saying a website i develop for commercial purposes with this language has legal issues?
    The corporates are very strict about the available licences, e.g. they would never allow GPL, although Apache is considered OK. If people use multiople platforms to develop, they'll need a toolset for each, so the lawyers prefer that it's he same tool everywhere, e.g. Eclipse, rather than platform-specific tools which each have their own licence. If the website you develop uses a library that is licensed under GPL, then your entire work must be made available as Open Source, i.e. for free. If you're happy with that, then that's fine; if not, use a different library.


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    apologies when i say app i mean mobile application, all this learning will be for myself mainly not for a business, i dont plan on trying to get a programming job with a business for a while i plan on trying to make websites/mobile apps myself and see if it is possible to live off the income it will provide. For this reason i believe it may be better for me to learn cross-platform as by specializing in one i am losing out on a huge market and seeing as I will have no real time constraints i can take as long as needed to develop each website/app


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    I'd go for (in order):
    a) Java, including Swing and JSF with JSP
    b) node.js
    c) C#, including MVC with ASP
    d) Ruby (a prerequisite for Ruby on Rails) and/or Python

    server side scripting is the part of web development which confuses me the most. After doing some research and to start do I only need 1 out of this list- Java,Python,PHP,Ruby.

    would learning another yield any benefit? I will know java anyway so ill have that done well, Ive read many places that PHP is one of the best and most commonly used, Then i read the Ruby is great for it aswell, could someone guide me on this please


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    also seeing as i should not go near XML, does that mean no need to look into AJAX aswell?


  • Registered Users, Registered Users 2 Posts: 1,465 ✭✭✭Anesthetize


    RoRo979 wrote: »
    also seeing as i should not go near XML, does that mean no need to look into AJAX aswell?
    Good knowledge of XML and also JSON are extremely useful. You should definitely not avoid XML as it's used very frequently in applications for configuration files, modelling and the transfer of data. Also keep in mind that AJAX is a collection of different technologies i.e. Javascript, DOM, XML/JSON, HTML.


  • Advertisement
  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    You're probably better off continuing to learn Java and doing your college course.

    These no point trying to plan out your next 10 years leaning. Popular languages will change, the market will change and your interests will change.


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    Graham wrote: »
    You're probably better off continuing to learn Java and doing your college course.

    pace of college course is much too slow for my liking, I moreso prefer to go off and do my own programming and use the course to ensure im covering all the right areas and in full.

    I am ongoing doing Java and im making good progress, make some basic apps/programs which im happy with.

    When i was learning website development, im not one to learn one laanguage in full, then learn another, although it is probobly i better way doing it that way i prefer to, for example how i did it before: learn some html and make a very basic static site, then learn a bit of CSS and touch it up, few more HTML learning and upgrade it again, then some Javescript and make it a bit interactive, then some more HTML/CSS. I like to learn a few at once which complete the task i wish to achieve and then as my knowledge increases upgrade the website as Go. This is the reason why i wish to know what languages would be best to cover as i will be doing them soon and dont want to be halfway through learning one then fund out there is a better one and have to switch.
    Popular languages will change
    indeed it will but there is strong languages already out which will remain dominant, sure i believe in a few tens of yours robots will be able to do this job better than any human can
    the market will change
    also inevitable but having the right languages under your belt will allow one to adapt easily to the changing market
    and your interests will change
    most definately unlikely, this is the job i wish to have for as long as long as possible, always have even since a young lad. Its potential for making it big,low capital investment, self-actualisation, they all just attract me to it. Hence why im looking to perfect what I learn.


  • Closed Accounts Posts: 781 ✭✭✭Not a NSA agent


    C++, Java, Javascript and HTML5 would be the first few I would focus on. Would provide you with a good basis.


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    C++, Java, Javascript and HTML5 would be the first few I would focus on. Would provide you with a good basis.

    indeed:
    - java
    - C++ or C
    - Python
    - HTML
    - Javascript

    they are the ones i will specialize in, take many years to fully complete but there my core. What im looking for help in is other "minor" ones.

    - MySQL
    - node.js
    - ?
    - ?


  • Closed Accounts Posts: 781 ✭✭✭Not a NSA agent


    RoRo979 wrote: »
    indeed:
    - java
    - C++ or C
    - Python
    - HTML
    - Javascript

    they are the ones i will specialize in, take many years to fully complete but there my core. What im looking for help in is other "minor" ones.

    - MySQL
    - node.js
    - ?
    - ?

    I wouldnt really worry about those yet. When it comes to that kind of stuff you could find you never use most of it again. If you need to store information in a database then look into SQL or whatever but only pick them up if you need to. Better to be decent at Java rather than half assed at Java and SQL and never using SQL (just an example)


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    Learning languages from the point of view of things to tick off a list is a waste of time and not realistic.

    Complete projects, write code in any language you want and learning new tech becomes easy.

    Your whole approach is just so naive!


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    Learning languages from the point of view of things to tick off a list is a waste of time and not realistic.

    Complete projects, write code in any language you want and learning new tech becomes easy.

    Your whole approach is just so naive!

    I dont understand the hostility tbh, i am simply looking for guidance on what language is best to learn for the projects i wish to do. I could go off and fortan/cobol because i read it was once very popular, however there is much better now out. I could go and try and learn haskell and then become demoralized about it because i started in too diffucult a language. I could learn HTML and want to try and make an android app with it.

    This isnt me being lazy and not doing research and hoping you all will give the answers to me, but some concepts i may not understand or may not of even been able to find, hence why i made this thread. I believe mostly everyone on this thread is experienced programmers, so what would take me a while researching to find an answer, someone can just tell me a better answer than what i was looking for. I am simply looking for direction that is all.

    The reason why i picked those languages is purposeful, not so i can boast about how much languages i know and think that gives me an advantage, but they are the building blocks of all languages, so I believe if i have them languages learned reasonable well, learning another will become much easier and quite a fast task. As far as i know the core languages are necessary for my goals:
    Java,HTML,Javascript,Phython - web development
    Java,C++ - Mobile application development.


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    There's no hostility, just telling you what I think. Completing projects, not coming up with some abstract action plan is the way to become a software devopeloper.

    Plus knowing Python or Objective C is only part of the story. There are dozens of concepts and frameworks surrounding application development for any platform that go beyond language.

    I've seen it before. The junior who knows C++ but can't actuallly get anything done.

    So I repeat my advice. Projects, not languages. Just get started and learn from mistakes.


  • Registered Users, Registered Users 2 Posts: 1,834 ✭✭✭Useful.Idiot


    Yep I would say that learning the foundations of one server side language and then getting stuck in building a web app or mobile app from scratch or with a popular app framework would be a good way to go. There's plenty of online guides about the place to help you on your way.

    Java is a good all rounder and if you learn that and did a web app then you could smoothly move on to Android development eventually afterwards. Python can be used for scripting but would be interchangeable with Java in that case of web apps.

    In the process of building an app then you'd pick up all the other necessary stuff (SQL, XML, JavaScript/JQuery) as you go along.


  • Advertisement
  • Closed Accounts Posts: 5,191 ✭✭✭Eugene Norman


    I would suggest you do learn native coding for the specific mobile device you want to target.


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    Yep I would say that learning the foundations of one server side language and then getting stuck in building a web app or mobile app from scratch or with a popular app framework would be a good way to go. There's plenty of online guides about the place to help you on your way.

    Java is a good all rounder and if you learn that and did a web app then you could smoothly move on to Android development eventually afterwards. Python can be used for scripting but would be interchangeable with Java in that case of web apps.

    In the process of building an app then you'd pick up all the other necessary stuff (SQL, XML, JavaScript/JQuery) as you go along.

    thanks that was good info, I plan to make a few sample information based/low art mobile apps in the coming months to test my knowledge and begin building a portfolio. Would SQL, XML, JavaScript/JQuery really be used in making an app? i was following a few tutorials not too long ago and they were never mentioned. I was using "MIT app inventor" to practice on, Whats the opinion of this?


  • Closed Accounts Posts: 2,894 ✭✭✭UCDVet


    There's no hostility, just telling you what I think. Completing projects, not coming up with some abstract action plan is the way to become a software devopeloper.

    Plus knowing Python or Objective C is only part of the story. There are dozens of concepts and frameworks surrounding application development for any platform that go beyond language.

    I've seen it before. The junior who knows C++ but can't actuallly get anything done.

    So I repeat my advice. Projects, not languages. Just get started and learn from mistakes.

    I agree with you 100%, but on the flip side....

    I'm a '.Net Developer' - not because I want to be. My favorite class in uni was a .Net class and it was right before I graduated. I ended up getting a C# job as my first real job. It was a winforms application. After that, I went looking for a second job and.....wouldn't you know - the companies that were interested in me wanted a C#/Winforms developer. At one point, I was able to get hired on as a VB.Net/Winforms developer. Now I've got like 10 years of professional development experience - all in .Net

    I don't want to lie on my CV, but I'm looking for jobs now and even though I spent most of my time doing a masters in c.s. using Python and completed a bunch of simple side-project/puzzle type things in Python, when I apply to be a Python developer I get nowhere. I've also done a reasonable amount of ASP.Net - I wrote an HTML5 game, mostly javascript, and I've fumbled around with .css enough to get whatever stupid website I'm making to look okay. But when I apply for web development jobs, nobody wants to touch me. I've even done some websites at my current job, and I have listed that work on my CV, but it's a tiny part of what I did (even though they did come out quite nicely, IMHO).

    So even though I've got these projects and I even include a github link on my CV - the only people that ever want to interview me are people looking to hire a C# desktop developer (winforms or WPF).

    I don't know if it's like this for everyone, but I'd advise people to be really careful with what they choose as their first job :)


  • Closed Accounts Posts: 5,191 ✭✭✭Eugene Norman


    UCDVet wrote: »
    I agree with you 100%, but on the flip side....

    I'm a '.Net Developer' - not because I want to be. My favorite class in uni was a .Net class and it was right before I graduated. I ended up getting a C# job as my first real job. It was a winforms application. After that, I went looking for a second job and.....wouldn't you know - the companies that were interested in me wanted a C#/Winforms developer. At one point, I was able to get hired on as a VB.Net/Winforms developer. Now I've got like 10 years of professional development experience - all in .Net

    I don't want to lie on my CV, but I'm looking for jobs now and even though I spent most of my time doing a masters in c.s. using Python and completed a bunch of simple side-project/puzzle type things in Python, when I apply to be a Python developer I get nowhere. I've also done a reasonable amount of ASP.Net - I wrote an HTML5 game, mostly javascript, and I've fumbled around with .css enough to get whatever stupid website I'm making to look okay. But when I apply for web development jobs, nobody wants to touch me. I've even done some websites at my current job, and I have listed that work on my CV, but it's a tiny part of what I did (even though they did come out quite nicely, IMHO).

    So even though I've got these projects and I even include a github link on my CV - the only people that ever want to interview me are people looking to hire a C# desktop developer (winforms or WPF).

    I don't know if it's like this for everyone, but I'd advise people to be really careful with what they choose as their first job :)

    Yes. However companies care about specialisation. The full stack developer is hireable in some start ups and it's good for grads, after that experience matters. Rather than bemoaning specialisation people should embrace it, unfortunately that's more difficult with certain career paths.


  • Closed Accounts Posts: 2,894 ✭✭✭UCDVet


    Yes. However companies care about specialisation. The full stack developer is hireable in some start ups and it's good for grads, after that experience matters. Rather than bemoaning specialisation people should embrace it, unfortunately that's more difficult with certain career paths.

    I might be taking this thread out of context, but the impression I got from the original poster was, 'I want to know which languages are 'most efficient' in different situations, so I can go out and learn the one that I decided I want to learn'.

    For someone starting off their career, whatever language they are most comfortable with is likely to be the one they get their first job in. And after that, it's very easy to continue, because as you say, companies care about specialisation.

    I agree with Colonel Panic's point about actually *writing stuff*. I do know people, usually students, who think they either 'know' a language, or they 'don't' and if you know two languages, you are better than a dev who knows one. I'd much rather work with someone who wrote something cool and useful on GitHub than someone who 'knows' four languages, three of which we don't use.

    But at the same time, I do think people should be very careful about where choose to spend their time, especially if they are starting out, because it is so easy to shape a career (or at least a significant part of it) by their choice.

    I think looking around to carefully decide which language/stack you think you might want to spend the next 15 years with is really smart. Making a list of things so you can tick off each one though, probably isn't.


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    I hear ya, UCDVet. I'm lucky in that I've got a lot of experience across different languages, frameworks and platforms but I'm still most hireable as a server side C/C++ developer because that's where 60% of my experience lies.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    UCDVet wrote: »
    I might be taking this thread out of context, but the impression I got from the original poster was, 'I want to know which languages are 'most efficient' in different situations, so I can go out and learn the one that I decided I want to learn'.

    For someone starting off their career, whatever language they are most comfortable with is likely to be the one they get their first job in. And after that, it's very easy to continue, because as you say, companies care about specialisation.

    I agree with Colonel Panic's point about actually *writing stuff*. I do know people, usually students, who think they either 'know' a language, or they 'don't' and if you know two languages, you are better than a dev who knows one. I'd much rather work with someone who wrote something cool and useful on GitHub than someone who 'knows' four languages, three of which we don't use.

    But at the same time, I do think people should be very careful about where choose to spend their time, especially if they are starting out, because it is so easy to shape a career (or at least a significant part of it) by their choice.

    I think looking around to carefully decide which language/stack you think you might want to spend the next 15 years with is really smart. Making a list of things so you can tick off each one though, probably isn't.

    That is exactly what im looking for. I dont believe/want to be hired by a business for some time yet (4-6 years). I most definately do not want to go into a job "knowing" a language but not knowing how to best implement it.

    To get a full knowledge of the language i dont believe i can just watch videos on youtube/ college lectures and then ill know exactly what to do. I want to know what to do from experience because i would have hopefully tried a similar project by then.

    I think the fault is mine for not stating clearly what exactly I want to do, i moreso asked for a broad opinion on which languages are best for general web development/ mobill application.

    I will say what im hoping to do and hopefully I will be able to be guided on the right path and reccommended the correct/best/preferable languages. These websites/apps to start are not intended to earn me a living or even earn any money. I am not doing the first lot to make it big, moreso just for experience.

    My Plan
    I wish to begin developing apps, using MIT app inventor with Java I have begun making sample apps, no point in putting them on the market, moreso just to test features and see if i can implement them. Using gps.accelerometers,screen orientation,vibration, dialogue and have been making good progress.

    The first few apps will be information based: market is already flooded with them I understand but just so i can get the experience of making them and i already have knowledge on them:
    First most basic one:
    Quote of the day: app contains simply many quotes and pushes a quote to a users phone daily.

    Healthy foods: An eastern medicine type app, contains list of all healthy foods/spices etc. What the are supposedly help the cure and nutritional benefits of them.

    The next 3 is where i may have diffuculty with and am hence wondering what languages would be necessary: I am hoping that they will contain a forum. Where people can/cannot(unsure) make an account and discuss topics with each other.

    Anonymous app: This may be controversial however im not looking for an argument. I believe in the group anonymous and what they do. This particular app may not be very hacking based mainly information based. People can go on and see current news which the world should know about. Also have a choice of selecting geographic locations and there would be news about geographic areas and people can comment on these areas to try and organise protest/charity events/ alert others of what news isnt covering.
    Leaving cert app: some may not think there is space in this area for another but believe me there is. While doing my LC I researched apps and websites to see what help is available, they all have their pros and cons, I know all these pro's and can mix them together. This will be my only early app with IAP.

    this is my first game app:
    Fishy: this will not be the name but is the name of a game which is very similar. Concept- start small, eat things smaller than you and you grow, if hit into another user that is bigger you die. If this game was to be single player I would be fine to learn how to do it, however the multiplayer concept i am unsure of and hence am looking for what languages i need to know to accomplish this.

    Websites:
    This will obviously be further down the line as a lot to learn. I wish to basically link particular website + apps together. So getting them to look like a website i believe I will be fine, Javascript,HTML5,CSS3(SASS,SCSS will research myself)

    but getting the website to communicate with the app is what I am looking for help on.

    Leaving cert
    Cant see it being much different than the app. All notes/sample answers/exam papers/question by topic. Would have to think of any additional features that could be added.

    dont believe there is a point in making a website for the others, seeing as there is constant fixed costs with a website no point in losing money for the sake of it on hosting etc. So my Leaving Certificate app/website will be my first proper proper app. Everything done as good as i can possibly do. The others are more for learning.

    Apologies for not stating this at the start and for it being so long. I hope someone can try guide me in the right direction. Points I am pondering:-
    - A functional website app. Cordova. May not be smooth to use however but will be cross platform. Potential for The LC app
    - C++ to make a cross platform app.

    I wish for Java to be my main, specialised language. I think it is a great language, am enjoying learning it and has many uses. However this is Android only and many LC students are unfortunately IOS.

    Thank you everyone


  • Closed Accounts Posts: 5,191 ✭✭✭Eugene Norman


    I don't really think you can use c++ for portability except perhaps in the business layer.

    You look like you are specialising in Java. That's a good decision.


  • Closed Accounts Posts: 2,103 ✭✭✭Tiddlypeeps


    I don't really think you can use c++ for portability except perhaps in the business layer.

    C++ is good for portability in mobile games. It works because most mobile games sit on top of OpenGL and generally don't really interact with the device specific API's unless strictly necessary (for example accessing hardware specific stuff like camera etc). You can very easily develop games for both iOS and Android using mostly the same code base if you use C++.

    It's not the best choice for general apps tho.


  • Registered Users, Registered Users 2 Posts: 1,275 ✭✭✭bpmurray


    I think the OP really should look at his career goals rather than technologies for their own sake. If the goal is to work in an enterprise, then much of the dev work will be the old faithful - on the one side, there's Java, JSP and a set of libraries; on the other there's the MS version with C#, ASP and a set of their libraries. For both there's the web client, and that can be using any of the many frameworks, but ultimately it's all HTML, JS and CSS (a.k.a. DHTML).

    The above covers probably close to 90% of the job market and, for that matter, the job applicants. So it's important to have something else shiney on the CV, e.g. mobile development, CI/CD pipeline - actually Ruby with Chef fits in nicely here.

    One very, very important aspect missing from all this are the soft skills: where is the emphasis of the passion and interest and willingness to share? No publications, no mentoring at CoderDojo, no participation in meetups, etc. These all count enormously when going for a job - don't forget these!


  • Registered Users, Registered Users 2 Posts: 2,494 ✭✭✭kayos


    Not a single mention of a functional language?


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 7,468 ✭✭✭Evil Phil


    Yep, learn one language really well as the skills will be transferable. Learn SQL too, JSON and XML are good to know and how to use them with your programming language of choice. But learn one language really well.

    If you don't want it to be Java then do a bit of market research into what languages are currently in demand and focus on one of them. But it seems Java is the language of your course so I'd stick with that.

    But if you want to be a programmer spend the next few years learning one language really well.


  • Registered Users, Registered Users 2 Posts: 1,922 ✭✭✭fergalr


    OP:

    Commendable that you want to learn more than your course.

    You are doing this wrong though. You are trying to learn application area competencies. These are large in size, and change fast, and won't grow you as much in the long run.

    You should instead be learning languages that will broaden your fundamental skill base, if you've got a few years to do this.

    I'm assuming you've learned Java in college, and are trying to build the base of a good career, rather than learn stuff that gets you the most well paid job asap.

    Consider picking up Python; its well designed and productive and clean, and will help you learn to code at a higher level, quicker than Java-OOP-land; but its not far from Java.

    Consider learning a language without managed memory, as a fundamentals exercise. C is fairly clean. Don't try write something huge or spend a lot of time here, but its worth working with pointers etc for a bit, and seeing how people write highly efficient data structures in C.

    Finally, expand your horizons with something like a LISP (Clojure? Scheme?) or a functional language like Haskell or Scala.

    Learn about data structures, algorithms, distributed systems over and above framework du jour.


  • Registered Users, Registered Users 2 Posts: 1,922 ✭✭✭fergalr


    Evil Phil wrote: »
    Yep, learn one language really well as the skills will be transferable. Learn SQL too, JSON and XML are good to know and how to use them with your programming language of choice. But learn one language really well.

    If you don't want it to be Java then do a bit of market research into what languages are currently in demand and focus on one of them. But it seems Java is the language of your course so I'd stick with that.

    But if you want to be a programmer spend the next few years learning one language really well.

    Disagree, think this is bad advice. Sure, start out by getting proficient in one main language, and learn it at least to solid intermediate level.

    But after that, or even as you go, you'll learn more and be exposed to more ideas by diving into several different languages.

    Learning Python made me a better Java programmer than a lot of extra Java would have.


  • Registered Users, Registered Users 2 Posts: 3,945 ✭✭✭Anima


    You can't go wrong learning C++ inside and out when it comes to learning how programming works. C++ has many popular features of other languages plus all the memory management stuff. Modern C++ is quite high level and not too difficult compared to the old style C++ that most people hated.

    Learning how features of the language work under the hood is also valuable. It requires you to learn a little bit about the hardware, compilers, performance considerations etc. It's also kind of required seeing as you can get very convoluted errors when using the STL or templates in general. However that might change in the future with the new standard.

    Functional style programming is also becoming a lot more popular. Even in non functional languages. C++, Java, C#, Javascript all have lambdas and things like that now so that's worth taking a look at.

    Having said that, the most important skills are the intangible ones when it comes to programming. Being able to deconstruct a problem into smaller pieces and writing good and maintainable code to solve it is what makes a good programmer. Knowing which algorithms or data structures to use and making good design decisions just comes with experience and reading a lot. Tools fall in and out of favor all the time so just learn the fundamentals well.


  • Registered Users, Registered Users 2 Posts: 476 ✭✭RoRo979


    I think the OP really should look at his career goals rather than technologies for their own sake

    while that would be wise, as stated before my view on this topic is quite "naive". Im not going fully into this to ensure i willl get a job in the future or be able to set up my own business from it. Right now, and for the next few years, programming will simply be a hobby. Something i can do for fun in my free time ( yes i do actually find programming to interesting/fun), A few of my friends do CS and a few have brought app/website ideas to me to make with them. While making money, and specializing in what employers are looking for. As stated before:
    These no point trying to plan out your next 10 years leaning. Popular languages will change, the market will change and your interests will change.

    Right now its just something I wish to do from a social point of view to do with my friends, personal so i can spend my time productively/doing something I like and of course constantly in the background, keep on trying till you get that "Lottery" app or even just some income coming in.
    Not a single mention of a functional language?

    To be quite honest i barely even understand what the difference is between the languages hence why it wasnt mentioned. I did some research before and all i really came to is that different "way"of programming, keeps your mind going, mathematically based. Some user posted a link which i read there
    Learn at least a half dozen programming languages. Include one language that emphasizes class abstractions (like Java or C++), one that emphasizes functional abstraction (like Lisp or ML or Haskell), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), and one that emphasizes parallelism (like Clojure or Go).

    All these types I am yet to put research into to fully understand so I may not be mentioning some, simply because i dont understand it yet.
    Sure, start out by getting proficient in one main language, and learn it at least to solid intermediate level.

    Indeed and that will be Java for me, but all the other languages which i wish to learn, Indeed is very unefficient use of time as if learn a specific language for specific use and dont work in area like that in the future it would have simply been a waste of time.

    From my "business plan" below, which shows what I wish to achieve in my free time or with my friends, what is it that I need to complete the task at hand.

    Java would be needed, python would be good to learn at some point but would it be a priority now e.g will I need to use it for the apps/websites listed below.

    I am sure there is a constant debate about which programming languages are better: funstionality/popularity/ease of learning - these factor(s) earn some the top place. But just in your personal opinion, what are the best languages that i need/should know to complete this task. Keep in mond I may not necessarily be learning all of them, I may search for a friend that is already experienced in that language.

    Thank you everyone again, I apologies for the lack of clarity in the direction of this thread. as you all know, I am still a novice, so i may sometimes talk about things i think i know/makes sense but really doesnt at all :D


Advertisement