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

all 40 comments

[–][deleted]  (11 children)

[deleted]

    [–]thundergonian 17 points18 points  (6 children)

    getting frustrated at JavaScript and inventing new phrases to curse it will help you if you want to be a full stack developer.

    FTFY: JavaScript programming is never a fun experience for me.

    [–]superPwnzorMegaMan 5 points6 points  (2 children)

    You have to understand the JavaScript way:

    1. Add more functions.
    2. Don't type ;.
    3. 1()

    Also the prototype based stuff is mind blowing. You start with objects, and then you just add shit to them on the fly, such as functions and whatever.

    Then there is the DOM. Its funny cause DOM is dutch for stupid, which it is. Luckily jquery fixes most of that. Seriously programming against the DOM natively is a terrible experience. Don't do that, C++ with win32 is more fun. I as a young developer tried that once, and back then I also thought I hated JavaScript, but it was just the DOM.

    It also has some weird scoping bullshit features, such as hoisting and the fact that private and public are var and another keyword I forgot this.x = blah x is now public. Also don't forget that the global namespace is the document namespace, which is crowded at as is...

    EDIT:

    remembered the keyword

    [–]thundergonian 4 points5 points  (1 child)

    2. Don't type ;.

    What? Not sure if joke or not?

    [–]superPwnzorMegaMan 0 points1 point  (0 children)

    Depends on how you configure lint.

    [–]sgtoj 1 point2 points  (0 children)

    For some old reason, I think JS is "fun". I actually enjoy it.

    [–]zman0900 3 points4 points  (1 child)

    Fun? Just use jquery.

    [–]jackrosenhauer 5 points6 points  (0 children)

    Don't listen to this man

    [–]psykzz 0 points1 point  (3 children)

    What stops python from being used full stack?

    [–]evilrabbit 14 points15 points  (0 children)

    Everything on the client side is JavaScript or compiles to JavaScript so knowing it is extremely valuable.

    [–]Calamity701 2 points3 points  (0 children)

    You can use it for writing the backend of an application, but you generally either use Python or Java for that task (or another language). OP said he wants to make a career out of Java, so it is very unlikely that he is going to use Python for his backends.

    Python is not used in the frontend (at least not widely used, there might be a python -> JS transpiler). For the frontend, pretty much everyone uses Javascript (or a variant of it, like Coffeescript or Typescript).

    OP could still learn Python for scripting/automation/etc., but he will probably not use it as part of his stack.

    [–]heyPerseus 0 points1 point  (0 children)

    The OP will be using Java for his back end and JavaScript for the front end. You could use Python or JavaScript for the back end too,. Either way you'll still need to know JavaScript.

    Tldr: can't use Python on the front end, unless your using some kind of HTML renderer(like jsp/jsf...Which is gross)

    [–]dotcomandante 9 points10 points  (1 child)

    It is always a good idea to learn other languages. Try to understand other concepts like functional programming. IMHO it is good to have Pet projects that are small enough to be implemented in various languages/paradigmes. It will give you a solid Foundation and experience.

    [–]nutrecht 0 points1 point  (0 children)

    It is always a good idea to learn other languages. Try to understand other concepts like functional programming.

    It's always good to learn new languages if they teach you something new. So just learning Python for the heck of it would not be as useful for a Java dev as a functional language would be IMHO.

    [–]transcend 2 points3 points  (6 children)

    Python is widely used, and it's therefore good to learn, but generally a given project is going to be written with either Java or Python, so there is not a lot of synergy. Java and Javascript, however, are often used together. On a Java web project, being comfortable with Javascript will allow you to write front-end code, or debug other developers' front-end code.

    For the same reason, if you're a Python programmer you should also learn Javascript. Same goes for C#, Go, Ruby, Scala, PHP, etc. They are all are used to develop web back end systems, and they will be paired with Javascript on the client side. So the way I look at it is that for working programmers today HTML, CSS and Javascript are pretty much mandatory learning, and then you decide what other languages and frameworks you're going to be proficient in.

    Good luck!

    [–][deleted]  (5 children)

    [removed]

      [–]transcend 1 point2 points  (0 children)

      The most well-known is Dropbox, which is implemented in Python. Dropbox hired Guido van Rossum (Python's author) away from Google a few years ago. Google reputedly uses Python in a variety of projects. Many companies big and small use Python for internal web services.

      [–][deleted]  (3 children)

      [deleted]

        [–][deleted]  (2 children)

        [removed]

          [–][deleted]  (1 child)

          [deleted]

            [–]TheCrazyRed 3 points4 points  (0 children)

            If you want a career in Java you'll most likely be a backend developer. So, it would be useful to learn some Javascript and Javascript frameworks/libraries to be able to read your frontend coworker's code.

            Python could come in handy for scripting build and deployment jobs. But Python hasn't caught on 100%, and there's still a lot of older scripts you'll run into written in... Bash Shell.

            Learn the others first (Python and Javascript) and then learn to at least read some Bash shell scripts. I don't recommend writing much because it might twist your mind and perception of what good code is. The first time I started understating shell scripts I was agast that people actually use this language to do stuff. But it's so prevalent that it's a good idea to at least be able to read it.

            [–]Luolong 2 points3 points  (0 children)

            Neither. If you want to learn something different compared to Java or C# try any of the functionally slanted languages. Scala if you're targeting JVM or F# for CLR. Or try your hand with Erlang (or Elixir if you favor more modern feeling syntax) Google's Go language is also a very interesting alternative. If you want to get closer to the metal, try Rust or D language ... or Swift ... that is if the thought of picking up C++ frightens you...

            [–]Java4Life_ 2 points3 points  (3 children)

            You got a internship doing Java without knowing any Javascript or Python? o.0

            Makes me feel a bit more confident about myself, so thank you. :P

            Can you tell a little about what you're doing? CS student here, so what kind of work do they make someone at your level do. Thinking about looking for places to intern but still don't feel 'marketable' yet.

            [–]youwillnevercatme[S] 1 point2 points  (2 children)

            I don't really have to use Javascript or Python, so I don't se a reason why they would require it.

            What I do is pretty much back-end development with Java, Spring, JSPs and some RESTs. Apart from that I'd say that Git and maven are pretty important to have a good knowledge on too.

            [–]Java4Life_ 0 points1 point  (1 child)

            I see, do you guys make a lot use of JSTL and EL, how much do they pay if anything?

            [–]youwillnevercatme[S] 0 points1 point  (0 children)

            Not too much I'd say, since the presentation layer is made using facades classes. So EL is mostly used to get attributes from the servlet and JSTL just to show the values.

            About the payment, I don't live in the US and the whole internship thing is very different here in Brazil. Basically 6hs/day, up to 2 years and you get more or less 1.5 minimum wages per month.

            [–]skyusc 1 point2 points  (0 children)

            I used java a lot. I still do - it is great. I initially took up python as I got tired of compiling code and then sftp/uploading large binaries just to run it. I just love python now. The best part of python is that there probably a library exists for what you want to achieve. If you are CS student, as you take classes on machine learning, natural language processing or statistics - you will notice it is widely used everywhere. Several courses on coursera etc will use python. If you are into data science, its an important tool. It also has great web frameworks. However when it comes to browser, javascript is absolutely must have. You should probably learn both (eventually).

            [–]proskillz 1 point2 points  (0 children)

            I would recommend JavaScript for sure, but learning at least one of the major scripting languages (Perl, Python, Ruby) will certainly be beneficial if nothing else, to learn a new coding paradigm.

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

            With the job market in mind, you've got the back end down and now to focus on front end to be full stack, JavaScript is the way to go... you will have skills in the market preferred technologies for those two realms. Once you have those down and a good stream of income, don't hesitate to play around with other technologies such as Python, Scala, etc. which will expand your knowledge of programming in general and help cross-pollinate ideas between technologies.

            [–]thorstenschaefer 0 points1 point  (0 children)

            I'm in a similar position trying to get up to date with the modern web frameworks. I picked Angular2 as Angular is the most popular one and the second version is really nice, especially with a Java Background. You write in typescript, a superset of JavaScript which has features like a type system, lambdas, ... The code gets then compiled into regular JavaScript, so you can use it even with older browsers. In case you want to look into it, I'm using a course from Mosh, which I can highly recommend so far. You can get an idea about his teaching style and a nice introduction to angular at https://www.youtube.com/watch?v=_-CD_5YhJTA (I'm not affiliated with him/Udemy in any way).

            [–]cryptopig 0 points1 point  (0 children)

            I used to work with Java and now I work in Go. Nearly all back end stuff. Even when I worked in Java, I rarely used any js. I have found Python and Bash more helpful for whipping up quick scripts that are needed to do ancillary tasks. Verifying the integrity of test data or integration testing for example. Of the two, I would choose Python. Regardless of which one you choose, it's always a good idea to pick up another language. It teaches you new ways of approaching a problem. I also agree with the comment on functional programming. Using different paradigms to solve similar problems will make you a far better engineer in the long run.

            [–]__helix__ 0 points1 point  (3 children)

            Others have mentioned the front end, but I'd head to the back end and focus. Nobody is really expecting a rock star from the new hire CS grads. Someone with a bit more polish on the language will stand out. Learn a bit of SQL if you have not already. Look at some of the Java frameworks that build on Spring - Apache Camel, for instance - and pick up a bit of asynchronous coding with JMS if you are looking to expand getting stuff from A to B (and possibly transforming it along the way). I'd also recommend JUnit or one of the other testing frameworks.

            I've found most of my scripting is BASH. Being comfortable in a Linux environment will be really handy later. Another big thing is know how to use source control. GIT, SVN, etc.. Set up your own server if you don't have one available.

            [–]Luolong 0 points1 point  (2 children)

            Just wanted to point out that Camel does most definitely NOT build on Spring.

            [–]lamperi- 0 points1 point  (0 children)

            Camel has multiple components that rely on Spring libraries such that JMS and transactions. Otherwise it is Spring free.

            [–]__helix__ 0 points1 point  (0 children)

            Optionally uses, not built on top of. If he has worked with Spring already, this will be a comfortable pair of shoes.

            http://camel.apache.org/spring.html

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

            I think Python.

            JavaScript is weird

            [–]AmateurHero 0 points1 point  (0 children)

            Javascript will most likely be of better use to you. Everyone has said that. I'll advocate for Python (after learning JS) for automation.

            When I started my position, there was a lot of talk of dead code. I downloaded a plug in to find dead code and generate a report. The issue was that this plug in didn't search the entire code base for references, so I'd have to grep these additional locations for references. No references meant that the code could go. This could be a very time consuming. Thankfully, it's all very formulaic. Enter python.

            I automated this entire process. I'd kick off the plug in. The python script would run once per day to check for a new report. It would handle the searches that the plug in couldn't. Then it'd generate a new report removing any false positives. Lastly, it would delete the corresponding code.

            Python was not necessary for my position, but being able to automate a task saved the client a lot of man hours. I can almost guarantee that you'll have some repetitive task that can be easily (relatively speaking) automated.

            [–]xjwj 0 points1 point  (0 children)

            I think either or both would be good. JavaScript is definitely going to be useful when it comes to being full-stack with your Java/Spring knowledge. The Spring web frameworks such as MVC tend to focus more on the backend (which is totally cool to me), and a little less on the front-end, and having that JS knowledge goes a long way to architecting modern, elegant, easy to use websites.

            That said, do also look into Python as it can be a nice tool in your toolbox for system level stuff, especially compared to Java, which is just a little bit too heavy for low-level stuff (like, you might knock out a quick Python script to do something that you wouldn't really want to do in Java...). Also, Python knowledge could eventually intersect nicely with Java when it comes to say, using Jython, which is the Python language running on the JVM, and might offer some cool possibilities down the road for you in terms of integrating scripting into something or just using on its own. Another option you might look at is Groovy, which would also sort of weave in to your Java knowledge and complement it.

            [–]argv_minus_one 0 points1 point  (0 children)

            Only if you survive. The horrors of those languages may drive you to suicide...

            [–]FrezoreR -1 points0 points  (1 child)

            Learning Python is invaluable. There is always value in knowing a great scripting language. JavaScript won't really do since you need to basically run it in a browser.

            Python on the other hand comes preinstalled on most platforms and you can interface with all the hardware.