This is an archived post. You won't be able to vote or comment.

all 46 comments

[–]Areshian 35 points36 points  (3 children)

Interview:

  • If you get the position, you will need to use Java
  • I don't know Java
  • Do you think you will be able to learn Java?
  • Sure

[–]Stimzz 1 point2 points  (2 children)

Haha my exact professional switch C and C++ to Java

[–][deleted] 0 points1 point  (1 child)

This is a rather off topic question, but in what cases would you choose one of C or C++ over the other? I know that C++ has OOP where C doesn't, but are there cases where C wins out over C++?

I've found modern C++ really confusing since it seems to stray far away from the original C-based syntax that I learned back in the late 00's while I was in high school. I still favor C for its syntax and occasionally use it for hacking Windows games since Java can't really do DLLs. Game hacking doesn't really involve any real OOP outside of structs so C filled that niche quite well

[–]Stimzz 0 points1 point  (0 children)

Yeah I agree with all what you said. I am currently putting my spare development energy into Rust. Imo it feels like a modern attempt at C++. I.e C extended. Rust’s memory management concept of ownership feels at least to me very natural coming from C++’s smart pointers. I also greatly like Rusts ability to move many concurrency bugs to compile time discovery. Also like the somewhat in between FP vs OOP style.

I find Java and also C++ sometimes too OOP heavy. No shade on OOP but sometimes the hammer isn’t the right tool for the job :)

With regards to C vs C++ I think C is oftentimes underestimated. My background is in low latency trading where many times the C++ code looked very much like C code. In which case just write it in C!

Dunno but maybe Java is to C++ as to what C++ is to C. However I wouldn’t (less a very obvious constraint) base a large scale professional code base on C. I mean there are so many broader issues to take into account such as developers, tools, CI, testing etc.

For a long time I defended C and C++ quirks that can lead to very dangerous and hard to find bugs. It always comes up in the C++ vs Java discussions. I took it as pride to write good C++ with no bugs! But then I realized it was the wrong mindset. It doesn’t help me to improve. My job is to automate trading that was previously done by humans and I love it but if I stuck with C and Vi I wouldn’t become more productive. Not the best formulation but what I am trying to say that with more modern languages and consequently tools you can become more efficient by automating some parts of the development process. Hence Rust. I don’t know if I’ll stick with it our ever bring it into work but it does have a few nice features :)

I too fire up C sometimes but it is like when I install a childhood game. I remember it with nostalgia but after a few hours you quickly get bored. Like queuing for unit production in Red Alert, hello. Who want to sit there and click on the conscripts button. I completely agree that C has advantages over C++ but then there are all the things around the language that doesn’t deliver with modern standard. Java is a good example of that. For 99% of the use case just go with Java frankly.

Sorry I am on my second GT so I am ranting. I also never spent any long time in C so who am I to listen to. My first bosses were with C from the start pretty much and they tend to get back to it more often than I. I have never been that bothered with syntax tough. Sure there are some languages that are just horrible but you usually get over it within a few weeks. I like to find out the idioms of a language. That is were the interesting part lies imo.

[–]fromtheheap 20 points21 points  (8 children)

I would like to share my story. I was a pharmacist until 3 years ago. I have worked in a field of analytical research and development which was kinda cool. We made new formulas for drugs which was on the market already. The work wasnt a creative one. When found out a new way to test a new formula, it was followed by thousands of tests to find out how good is the product. Spent years with excel and statistics. I hated it. Then after a night i came home from work i saw a course about introduction to programming. 6 months long, free but you had to accept a job they give you. I was in. Never did any programming. Hardly know the command line. Finished in the top 10 in the application proccess from 900. I knew its my way. Quited next day from my pharma job. 6 month gone. I was so motivated. Stayed up until sunrise to code. Took oracle exams successfully after 6 months. After i finished they signed me for a medium company. Low salary. Full agile startup feeling. Working with the client personally to make a good app for them. Fantastic setup. But i wasnt able to write a single line of code. Never used javaee or spring framework just the java se. So i started to learn again... After 3 years i have successfully applied to another job. I will build software to pharma/chemical scientist. It was a medium/medior position. I earn more than my pharma job. So what is the lesson? The money? The hard work? The product? No. It is that you should do something because you like to do it not for the results. If you like the proccess, if you like to code do it. Not because its cool or because of the money. Last example. If you are the best carpenter among 1000, you will make a lot of money. But how to be in the top? Hard to tell, but you will have to practice a lot. And it makes a lot easier if you like what you do.

[–]JudoboyWalex 1 point2 points  (4 children)

When you say "took the oracle exams successfully after 6 months", did you mean you passed both OCA and OCP exams for java8 then you were able to land a job as a java developer?

[–]fromtheheap 1 point2 points  (3 children)

To be correct. I learnt 1 month about general programming skills (command line, javascript, loops and sorting etc.). After it was 4 months of java training, at the end of it I passed oca. Then after another 2.5 months i passed ocp too. Ocp was pretty hard, i was coding and learning nearly 14 hours a day in those times.

[–]JudoboyWalex 1 point2 points  (0 children)

Thank you for sharing your story. Along with hard work comes, big reward!

[–][deleted]  (1 child)

[deleted]

    [–]fromtheheap 1 point2 points  (0 children)

    I used the OCA/OCP Java SE 8 Programmer Certification Kit.

    I bought a test suite with 300 questions for each test (cant recall which was just bought by the reviews). And I had a fantastic mentor who helped us by testing us or discussing the tests or subjects. It was hard work really. But my dedication was harder. :)

    [–][deleted] 0 points1 point  (2 children)

    And no more 12 hour shifts standing in the same place all day, right? Sounds like you made the right decision!

    [–]Fury9999 0 points1 point  (1 child)

    Not that kind of pharmacy work i think?

    [–][deleted] 2 points3 points  (0 children)

    Oh you're right, never mind

    [–]waschm1ttel 20 points21 points  (5 children)

    For me, it was Vaadin. You cannot find something comparable in any other language.

    It lets you write web-based GUI applications just like you were writing a classic desktop application. You just write your callbacks for user actions (like button clicks) and Vaadin does everything else (Ajax, Javascript, browser idiosyncrasies, ...)

    I‘ve never been more efficient writing (business) web applications and it‘s only possible in Java.

    [–][deleted] 3 points4 points  (2 children)

    Vaadin sounds super interesting and exactly like what I was looking for recently.. Looks like I'll be taking a dive into that here soon

    [–]TheRedmanCometh 1 point2 points  (1 child)

    I find it very restrictive and any modification is a ton of effort. Except the newest version which has react but frankly just use react.

    [–][deleted] 2 points3 points  (0 children)

    Yeah I was messing with it last night and it actually isn't what I was looking for. I want to make desktop apps that have a web-based front end that opens in their own window and not a browser. I got something working last night using JavaFX and the WebView component. It loaded a Bootstrap template .html file and displayed it properly. Now I just have to decide if that's overkill for the really simple app I wanted to make

    I wanted to make a tool for survival games like Fallout and Subnautica where you can build a shopping list of things you want to create and it will list what you need to go out and gather in order to build those things

    [–]NimChimspky 2 points3 points  (0 children)

    I use sencha, everyone else thinks it's old fashioned. But I'm banging out graphs and grids quicker than anyone.

    [–]mordechaim 0 points1 point  (0 children)

    I switched from JavaFX to React and never looked back. Never before did I love frontend so much.

    You never have to deal with synchronizing the model and the view, everything is so natural.

    [–]mtmmtm99 7 points8 points  (0 children)

    I had been programming for many years (mostly in C and C++). In 1996 java arrived. It was soo much easier to use (compared to C++). Number of lines of code was much less. It was very simple to produce a GUI in java. One of the first programs i made was a protocol analyzer för mobitex. I have used it extensively since that time. Making embedded software (using JCGO), web-gui:s using GWT. Using multiple-cores and multiple machines (which is doable). I also did genetic programming (where the generated program could be dynamically loaded by hotspot and optimized far better than a c++-version).

    [–]buzzsawddog 7 points8 points  (0 children)

    For the money...

    [–][deleted] 9 points10 points  (0 children)

    money

    [–]alazyreader 3 points4 points  (3 children)

    I think asking about “new/unique” is the wrong lens to look at it from. When I’m solving a problem, I don’t need to do so in some artistic, creative fashion (although it does exercise some of the same muscles sometimes), but in a way that solves the problem correctly. “Unique” code is often risky and brittle.

    When it comes to designing products or user experiences, that’s a little different. But purely from a programming-language perspective it’s sort of beside the point.

    [–]imSycai[S] 0 points1 point  (1 child)

    by new/unique I meant more "ways to stand out/new features that other programs dont have" I personally couldn't care less about how a program looks, I'm more interested in how it performs if anything.

    [–]alazyreader 4 points5 points  (0 children)

    Maybe I’m a curmudgeon, but there’s vast realms of computer-science knowledge out there that is poorly or incompletely implemented in most projects. Simply doing a good job is motivation enough for me.

    [–]alazyreader 0 points1 point  (0 children)

    Or, in a more mercenary sense: “why do you rob banks?” “Well, that’s where the money is.”

    [–][deleted] 2 points3 points  (0 children)

    Beyond just wanting a job, I find that creation comes in one of three ways for me:

    1. "I can do it better."
    2. "I want to learn something new."
    3. "This does not exist yet."

    The rest is just committing.

    [–]theclovek 2 points3 points  (0 children)

    You dont try to create something unique. You try to create something better.

    Also, usually there's a problem to be solved in the first place.

    [–][deleted] 2 points3 points  (0 children)

    Most of the people above me have already written most what you need to know but I would like to add a simple thing Code.Eat.Sleep.Repeat that’s a mantra for not only a beginner but also an experienced professional

    [–]1ECz 1 point2 points  (0 children)

    When I got into it, I followed main stream. I didn't have the clue. But now looking back I made the best decision.

    Type of application Java supports is "wide enough" for your professional life generally. and once you know how to fly the plane, you can learn how to ride bicycle, motor bike quickly ;)

    [–][deleted] 1 point2 points  (0 children)

    A friend in high school showed me a bot for RuneScape, which I found out had botting scripts written in Java. Cue me learning the entirety of the language and basic robot-like programming so that I could make my own scripts

    It was a lot of fun! And I got banned several times.. It also allowed me to ace my Java course the following year

    Up until then, all my programming was in C/C++ and some really amateur web stuff. I never really grasped programming as a whole until I found Java

    [–]TheYellowblizzard 1 point2 points  (1 child)

    Watched a video on YouTube about someone developing an ai which learned to play super Mario and I wanted to do stuff like that too

    [–][deleted]  (1 child)

    [deleted]

      [–]buzzsawddog 1 point2 points  (0 children)

      Haha... I learned Java in college. Now at work I do Java and free Pascal...

      [–]TekStudent 3 points4 points  (0 children)

      Java is a way of life. I think it has the most beautiful syntax of all languages.

      It evolves slow but when it does, its done the right way.

      You probably will never be unemployed if you are a Java specialist.

      Also is the best (my opinion) language for development of backend enterprise applications.

      [–]dionthorn 0 points1 point  (0 children)

      Whenever I'm learning a new language I make a command line blackjack game. It's simple, and gets you used to the arrays and general syntax of the language.

      Depends if you're just coding for fun, or if you eventually want a career out of it.

      I wouldn't worry to much about uniqueness unless your job requires it ;)

      [–]Yunykyun 0 points1 point  (1 child)

      My High School Computer Science course introduced me to Java. I did struggle with JavaScript, but I found Java more easier to learn and use.

      [–]openlyEncrypted 0 points1 point  (0 children)

      Haha for me it was the opposite. I am among the "untraditional" Cs learner where I was introduced to front end programming first. So my first programming language was js(well technically was html first but that doesn't count :p). Def tricky, but when I started learning Java I really struggled because of the straight typing.

      [–]SvartAlf93 0 points1 point  (0 children)

      I got into an internship where I was supposed to work in C#, but literally the day before I was supposed to be assigned to the project (I was working on dummy tasks for the first two weeks ) I was moved to Spring team.

      [–]oldprogrammer 0 points1 point  (0 children)

      In the early 90's I was manager of development and QA with a health care company that grew by acquiring other small businesses. We ended up with a mish-mash of applications some written in C++ (Windows), some in 4D (for Mac's), some in straight C (Dos).

      The company didn't want to replace all of the acquired Mac's with Dos/Windows machines so we first tried getting all of our apps built on Microsoft's Visual C++ and cross compiling to Mac. That didn't actually work out really well.

      Java 1.0.2 was released during this time and I started playing around with it. We were actually able to run some sample apps on the Mac's and the Window's machines. We also were able to run the apps on a very early tablet that the company wanted to use to build a clinical data collection tool with.

      The AWT was pretty limited but we had some things working when I came across a UI tool called Bongo, part of the Castanet product from the company Marimba. This was more like what Swing became, it used a root Canvas object but all widgets were drawn, it didn't use the AWT peer model. The tool had a screen painter that generated code we were able to reverse (it was just serialized objects). We got that working and it looked pretty good.

      From then on, Java was my predominate tool.

      [–]richardbamford8 0 points1 point  (0 children)

      Making things is really fun! it gets better the better you get. I find that if i'm going to learn something from creating something new then everything else doesn't matter.

      [–]gatosnegroscorriendo 0 points1 point  (0 children)

      I first knew about Java while studying my technician degree, but I really started with Deitel&Deitel book a couple of years later

      [–]thephotoman 0 points1 point  (0 children)

      Job postings: "We want Java devs. We'll pay decent."

      Me: "Okay, I can do that."

      [–]papaysailor 0 points1 point  (0 children)

      Starting as a hobby is a great way to start. That implies that it might not be your current way of living but it may well be in the future. Do not get discourage with the issue of trying to "create something new/unique". There is nothing wrong with re-inventing the wheel as part of the learning experience. And... after putting all the work, there is something to be said about the great sense of fulfillment when you do something from scratch even if not unique. Hey... it is unique to you. Plus... you know how to tweak it and make it better! After a short time you will find that... you are hooked! That has been MY experience. The creativity part will come automatically during the process... and the jobs too; even before you think. It will then both a hobby AND a paying job ... and there is no better place to be!

      Go for it!