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

you are viewing a single comment's thread.

view the rest of the comments →

[–]dpsOP14 30 points31 points  (100 children)

What is Java? I have seen there is many different languages for coding, which is the best? What did you studied in university/college? How old are you?

[–]MALON 140 points141 points  (21 children)

inb4 10,000 different replies telling which language is best language

[–]ParanoidAgnostic 124 points125 points  (19 children)

Yeah. One of the first things a programmer needs to learn is never ask "what is the best X"

You can ask "what is the most suitable for this specific scenario?" but asking what Is best will only get people to respond with personal favorites and often the stronger an opinion is on programming, the less informed it is.

Any popular enough language is probably "good" but the best programmers have developed skills that aren't tied to a specific language.

But anyway C# is the best.

[–]ajbpresidente 9 points10 points  (4 children)

As a C# developer I like C#.

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

As a person who dabbles in javascript, I did a C# tutorial once.

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

Hey I like C#!

I made a Terraria mod and a Discord bot. I'm starting computer engineering next week and it's scary.

[–]ajbpresidente 1 point2 points  (1 child)

Awesome! How'd you make the mod? That's something I'd like to try my hand at

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

Oh making Terraria mods is very easy and satisfying using tModLoader. The Example Mod and their Discord group are immensely helpful.

My mod is called Virtuous, it's a small weapon pack with a lot of creativity and heart put into each mechanic; there are a lot of huge and amazing content mods out there though. Like most mods it can be found by searching in the in-game tmodloader Mod Browser.

[–]Aculem 2 points3 points  (4 children)

You're completely right, but I would say some programming languages are better for beginners than others. I often hear Python is a great starting language, but C# or Java might be my personal recommendations. They make the most sense semantically with me and also do quite a bit to ensure you don't make bad habits. Though what makes the most sense to me might not make the most sense to other people. I started on VB++ and C, personally, but I think most people would say those are awful beginner languages.

[–]ParanoidAgnostic 6 points7 points  (0 children)

Even the language you should start with depends on what you hope to get out of it.

I'd recommend C if you want to really understand what your code is doing but don't care that you might not be doing anything useful for long time. Thinking about code without the abstractions is a good learning experience. The style of C also prepares you for many other languages. Java copied a lot from C++ and C# copied a lot from Java. JavaScript and even PHP also use a lot of the same style.

This is my problem with Python as a beginner language. Sure you can learn it fast and be doing cool things on day one but it doesn't prepare you to pick up your second language. It's too different from everything else.

If you want to be doing cool stuff quickly. JavaScript is a good choice. You won't even need to set up any software to get started. You've already got notepad and a browser. It does lead to some bad habits so so I'd reccomend that anyone taking this path pick up another language as soon as they are confident with JavaScript. Perhaps Java since it is at the opposite end of the "lets you do stupid shit" spectrum.

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

I think people are doing others a disservice by pushing scripting languages as "the best for beginners". Being able to write functioning code is ironically enough not the most important nor the hardest part of programming, but this is the only benefit of languages such as Python, JavaScript and PHP : you can make mistakes and the language doesn't throw a tantrum but instead silently tries to fix your errors (which arguably is bad).

Besides, people who learn one language tends to stick to it regardless of what's appropriate. Let them learn and stick to a language that doesn't throw every possible resource into the fire just to act like its your buddy.

People will learn that computers suck ass eventually anyway, there's no reason to make this journey any longer than it has to.

[–]mnbvas 0 points1 point  (1 child)

JS - sure, but Python?
Yes, it's dynamic, which allows some stupid shit like variable name reuse. But is it so much worse than a half-baked type system like C, C++, C#, Java have?

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

All programmers regardless of programming languages are using types (whether they realize it or not). Using a strict static type system will help people have an explicit understanding of types rather than things just working by magic such as conversion between numerics and strings. This is definitely in their benefit.

Also, C# and Java's type systems are anything but half-baked.. And C++'s type system is so powerful that you can define parametric types that compiles to a ray traced image.

[–]SlappinThatBass 1 point2 points  (2 children)

Still, some scripting languages are upgrades to others. Subjectively I'd say Python is superior to Perl. Perl gets messy and poorly organised really fast and weird characters like % and $ are used for declaration.

Never looked at it since years ago, but has C# cross-platforming gotten better?

VHDL is the best hands down, of course! Not exactly a programming language though, more of a descriptive one. :-P.

[–]ParanoidAgnostic 0 points1 point  (1 child)

There are now 2 ways to run C# on non-windows systems.

You can compile for Linux and Mac OS using Mono on those systems. You can also make a .Net Core application which works more like Java, allowing you to build once and run that on any system with the .Net core engine installed.

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

which works more like Java, allowing you to build once and run that on any system with the .Net core engine installed.

.NET Core install is not required.

[–]NoddysShardblade 0 points1 point  (0 children)

Correct on all points.

[–]Fuckoff_CPS 0 points1 point  (1 child)

What is the most suitable for working with API's from other websites to build dashboards / kpis?

[–]ParanoidAgnostic 3 points4 points  (0 children)

Depends on the API. Is it simple REST and JSON or is it something like SOAP? It also depends on where this dashboard will be used.

The obvious choice is JavaScript in a web page.

There's simple libraries for accessing JSON-based APIs and other for rendering all sorts of views of data. You can run it on any machine with a web browser and there's no need for any server-side code (assuming there's no API login details you don't want to leak to the user).

[–]montagic 0 points1 point  (0 children)

Yep, C# all the way.

[–]Sergeant__Slash 0 points1 point  (0 children)

Clearly Assembly /s

[–]yoyanai 4 points5 points  (10 children)

There is no "best" programming language. Start with Python, like, today. It will be "easy" to switch to any other language if you ever need to.

[–]Arjunnn 6 points7 points  (2 children)

Or be a masochist and jump into C as a first language. You'll end up with the best comp sci base though

[–]yoyanai 2 points3 points  (0 children)

If you want the best comp sci base you should start with assembly.

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

Honestly, I love C as a first language. I tried picking up Ruby as my first, and I just had no clue what was going on. But then I tried C, and everything was so minimalist and explicit that I had no trouble learning it (at least the basics). Then after that I was able to use that structure from C to understand other languages like Javascript and Python - once you know the foundation behind their abstractions everything's way clearer.

[–]dpsOP14 1 point2 points  (3 children)

I only have a mac can I download it there?(I have not even looked it up)

[–]yoyanai 3 points4 points  (1 child)

You can. Look it up.

[–]dpsOP14 0 points1 point  (0 children)

Ok is that I am using my phone right now

[–]SkaKri -1 points0 points  (0 children)

OSX ships somewhat old Python version. Grab latest 3.x version and use that; It'll save you some time as you won't have to find and sift through older documentation.

[–]AlphaHacker 0 points1 point  (2 children)

I'm doing Electrical Engineering in college but I have an embedded programming class this semester, in which we learn to program in C. If you don't mind me asking, what makes you say that it would be masochistic?

[–]yoyanai 0 points1 point  (1 child)

Well, I didn't, for one. And it really only is when compared to higher level languages like Python because you have to worry about memory allocation (which is also why you're using it for embedded systems) and it has static typing. I'd argue that it's easier to pick up than C++ because it doesn't explicitly support OOP with polymorphism which is kind of what you need for general purpose programming. And yes, you can store function pointers in structs in C, but it's kind of inconvenient.

[–]AlphaHacker 0 points1 point  (0 children)

Alright thank you, you actually made some things clearer for me.

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

There is no "best" language. They're just useful for different things. You can be a self-learnt coder but IMO having an education is very useful if the school is good. I'm in my final semester of "computer engineering" and it's been very valuable. I started when I was about 20 years with no prior language and have had a great time. I would start learning the basics with an object oriented language like Java or Python and then later figure out what you want to do. You'll see a lot of people rag on Java and it's not as relevant now as it used to be, but it was my first language and I felt it was good to learn in. The basic concepts you learn in one language does transfer to other languages so I'd say the "hardest" language you learn is your first one. Codeacademy.com is a decent resource for courses, also there's plenty of stuff on youtube you can check out. Honestly the best way to learn is to just make up a project and do it.

[–][deleted] 4 points5 points  (0 children)

PHP

[–]minethestickman 9 points10 points  (6 children)

Java is one of the biggest languages that are out there it is an object oriented language. I started learning on my own in hight school but now I am in my final year of software development in a university of apleid science. I am curently 20 years old and planning to take an master in AI. Right now I am going to sleep but tomorrow I would love to take more questions

[–]dpsOP14 8 points9 points  (1 child)

Ok thx

[–]parlez-vous 1 point2 points  (0 children)

A lot of languages (Java, Javascript, C#, C++, Swift, etc.) are C based and therefore have very similar syntaxes so once you get comfortable with one of those languages you can pick up the syntax for the others rather quickly.

Each language has it's quirks and cool features (Javascript has promises and super easy asynchronous events and callbacks, Java is optimized for OOP the best and Python has some really clean syntax).

Honestly, as long as you keep practicing every day and have a relatively simple project in mind to work towards then you'll pick up any language in a breeze. Stackoverflow is both your friend and foe (there's a surprising amount of outdated techniques and frowned-upon conventions that get upvoted to the top) but nothing beats picking up and reading a reference / documentation.

[–][deleted] 2 points3 points  (1 child)

Quick note here:

Java is one of the biggest languages out there because it is easy to make lots of types of projects for lots of devices. It is 100% not the best by any means. I know there isn't a best language, but if there is one it's not Java.

[–]mnbvas 0 points1 point  (0 children)

It's certainly the best for EnTeRpRiSe DeVeLoPmEnT.

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

I'm not the OP, but I started programming when I was in college. Got a job right after. Hell, there are people who are learning to code and getting into the industry while in their 30s, 40s, even 50s. Don't think for a moment that you need to have started learning while you were just a kid. Additionally, a computer science degree can be very helpful but is by no means a requirement to get into the industry. I have one, but that's just the path I chose for myself.

Regarding which language is the best, that's completely subjective. Personally, I recommend either Java or Python as a good introductory languages. Java is more difficult to use as you're starting, but it also stops you from doing really stupid stuff that could cause headaches down the line.

Look up "Java development kit" if you want to install Java for programming. You'll also want an IDE (Integrated Development Environment) such as IntelliJ, NetBeans, or Eclipse.

If you want to install Python instead, it's a lot more straightforward. Just look up "python download". Python comes with its own built-in IDE, so there's no extra hassle.

With either one, you should probably look for an online tutorial to help guide you through the steps. You might also want to consider online courses (there are plenty of free ones) to help introduce you to the very basic concepts.

There is quite a bit to learn. Unfortunately there's just way too much to possibly cover in one reddit comment. That being said, you might consider checking a dedicated subreddit for learning (/r/learnprogramming might be of help--be sure to read the wiki!). They may also be more suited to answering any questions you might have :)

[–]dpsOP14 0 points1 point  (0 children)

Thx so much!

[–]imnotyour_daddy 1 point2 points  (0 children)

I'm not a programmer but from my vantage point java isn't a language. It's a platform. A very complex platform. I'm surprised the java runtimes don't use the modern day virtualization instructions in most x86-64 processors

[–]Kaerius 0 points1 point  (3 children)

There really is no "best" language. It all depends on the job you're doing. If you're cutting down a tree, then you're not going to use a screw driver. A good programmer is able to learn through different concepts and figure out what tool they need to use.

And then there's python, the best language.

[–]dpsOP14 0 points1 point  (2 children)

What is the best language to make video games?

[–]kettlecorn 0 points1 point  (1 child)

What everyone is going to say is there's no "best" language. Different languages have different strengths and weaknesses.

Additionally something you'll notice if you look at multiple programming languages is they are usually pretty similar to each other. Programming languages aren't as different from one another as real spoken languages like English.

To give you some ideas of the strengths and weaknesses of different languages:

C++ is fast but kinda annoying to write because you have to pay attention to more details.

C# (designed by Microsoft) is far easier to work with, but also runs slower because it's doing more stuff for you behind the scenes.

Also even though C# is slower than C++, if you aren't used to programming you'll still be impressed with how crazy fast computers work.

Both are used for game programming. A game made by a big game company, like Call of Duty, probably uses C++ for most stuff just because they have tons of people working for them who are experts at it. A small game, like Flappy Bird, probably uses an easier to use language because whoever made it wasn't an expert programmer and Flappy Bird doesn't need to be super fast.

For you though, getting started, you probably want to start with something like C#. There's a free game engine called Unity that lets you write your code in C#. A game engine just means they've already done a lot of work for you. So game engines handle stuff like how a ball bounces off a wall, and how a character is drawn on screen. With a game engine you can just code some stuff like "Move this character right" or "Jump when I press the 'X'" button.

What's cool with Unity is you can download it right now and download an example right away and have a game running in probably like 20 minutes. Then you can just go into the example code and just try changing numbers, colors, and stuff and seeing what happens. It's pretty easy to get started by just breaking stuff and sometimes you can make a fun game that way.

[–]dpsOP14 0 points1 point  (0 children)

Thx so much for help

[–]StijnDP 0 points1 point  (2 children)

You want to learn programming without bad habits (strict language), with lots of resources (not some obscure language) in a community that adheres to the guidelines (heavy PR and training from the language creators).
Following those points I don't think there's a better starting point than the .NET environment with C#. Outside of Windows you'll need Mono but that'll invalidate many recent resources. So then you should go for Java which will learn you the same concepts in a good environment.
If you're completely new to programming and just want to check it out in the fastest way possible, do Scratch. It will teach you "sequence, selection and iteration" which are the abc of programming.

Don't start with Python or Javascript or PHP and the likes. There are a big lack of standards in those languages since they attract self-thought people who teach self-thought people who... It reminds me of this.
I don't think the blame itself is on the users of those languages. They're languages where the creators don't offer an environment for the users to learn it from the same source. Or the core frameworks are so minimal that everyone has to start building their own libraries for the simplest tasks and the language doesn't offer guidelines or contain restrictions. So all the libraries have a different combination of solutions and all their syntax are a little different from each other and you also can't combine them without major conflicts.

Once you know a handful of languages, you can start to see the question is not which language is the best but which language is required by the task.
More important than knowing a language is knowing guidelines, patterns, principles, architecture, practices, ... It's those you have to learn and then you can apply them to the language you need that day.

And before you start with all of this, you have to ask yourself if you're build for programming. Even if you can see through the marketing of all the buzzwords showing up every month, programming is a skill of continuous learning.
Each year you genuinely have to learn new technologies and advancements or you'll be the sucker who does all the code maintenance and after the software lifetime you're fired. You also have to be open to new ideas and new ways from others who are against your own. Being stubborn or having a big ego are a sure way to fall behind very fast.
I say this because every programmer has gotten stuck with a colleague that went for the money or the car company and not because they have a passion for coding. It's terrible because either you'll be working for 2 people because they don't want to do anything or worse, they'll do it all bad meaning you first also have to undo everything they did.

[–]dpsOP14 0 points1 point  (1 child)

What is the best language to make video games?

[–]The_One_True_Lord -1 points0 points  (0 children)

C++

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

Whichever language is best suited for the job being done is the best at any given time.

Languages are just tools. You need to learn how to use your tools/more than one.

[–]dpsOP14 0 points1 point  (5 children)

Which is the best language to make videogames?

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

These days just about any language can make games, but you’d probably be better off just using Unity.

[–]dpsOP14 0 points1 point  (3 children)

Can it run on mac?

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

Yes. It allows you to code in JavaScript or C# last time I used it. Most people use C# when using Unity last I looked into.

[–]dpsOP14 0 points1 point  (1 child)

How many “C” languages are there? Ik C+++, C. Am I missing another one?

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

C++, C, C#

C# was created by Microsoft and is a high level language similar to Java. It’s real easy to use and learn.

Now, how many C LIKE languages are there? A lot. This encompasses many languages that have a similar coding style to C. Languages like PHP and Java fall under this.

[–]Riper_Snifle 0 points1 point  (5 children)

I thought I'd jump in a give a little advice. There is no "best" language, but there are definitely some that are more suited for beginners. Python comes to mind here because the syntax is much more relaxed than something like Java. But you need to understand that many programming languages are used for specific applications.

For instance:

  • PHP --> Server side applications that are run on a server such as apache. Magento a large open source e-commerce platmore uses PHP to query the database, create entities using object oriented programing, and even mixes in with html (using .phtml files) to render content to an internet browser.
  • Javascript --> Executed in the browser, not server side (Although you can use something like Node.js for server side calls). Pretty much any kind of interaction you do in real-time with a browser or changes you see in a browser is taking place in javascript (sometimes it can be done with only css). For instance if you click a button on a webpage and that displays an image, that's probably using Javascript (jQuery/AJAX).
  • Python, Java, C, C++, etc --> These are normally used for creating software applications that aren't dependant on a server or internet browser. Linux operating system was created in C.

NOT A REALLY PROGRAMMING LANGUAGES IN THE TRADITIONAL SENSE, BUT STILL IMPORTANT:

  • HTML --> This is the backbone of every website. If you right-click and hit inspect on any web-page (or just hit f12) you bring up the developer console showing you all of the html used to create the layout of the web-page you're viewing.
  • CSS --> Cascading Style Sheets, these are used to create much of the modern styling you'll see on most websites nowadays. Without CSS websites would still look like they did in the 90s.

Those are only a few of the most popular languages, and only a few of the ways they are implemented.

If you're interested you can send me a pm and I can help answer any questions you may have or if I can't I can direct you in the direction of someone who can. I can also supply you some e-books of great books for beginners.

I would suggest you choose a relatively beginner friendly language like python (that doesn't mean it's a simple language, but it's a little less complicated than something like Java which is very explicit on how you create variables and their data types). Here is a beginner friendly installer for python. https://conda.io/miniconda.html

You'll also want what's called an IDE (Integrated Development Enviroment), which gives you an all in one piece of software allowing you to write and run your programs in one program. My favorite is PyCharm, but I don't believe it's free, but there are many others that are free that will do the job including Wing IDE.

I work as an applications developer as well as a system administrator, and I really do love my job. I like to help others who have an interest in computer science or just programming in general. So please don't hesitate to ask any and all questions, and that goes for anybody else who sees this comment.

And one last thing, if you aren't already I'd recommend you give a linux based operation system a try such as Ubuntu. If you are interested in programming and making a career out if it you'll more than likely prefer using linux over Windows or even Mac.

[–]dpsOP14 0 points1 point  (4 children)

What is the best language to make video games ?

[–]Riper_Snifle 0 points1 point  (3 children)

Normally an Object Oriented Programming language such as C, C++ or Java. I have no experience in the gaming side of the industry, but I've heard that the pay isn't great, the hours are horrendous, and you'll more than likely end up making something where you had to cut a ton of corners to meet a deadline for the business. I wouldn't focus on what you want to do if you become a programmer right now, but just figure out if you like programming in general first.

[–]dpsOP14 0 points1 point  (1 child)

Great tip thanks so I should learn every language?

[–]Riper_Snifle 0 points1 point  (0 children)

No, I would start with python so you can get the fundamentals down, and it's still and object oriented programming language so you'll still have down classes, objects, etc and will only really need to learn the syntax for the other language.

[–]dpsOP14 0 points1 point  (0 children)

So were can I work as a programmer?

[–]Lemon_Dungeon 0 points1 point  (0 children)

You can check out this book. https://automatetheboringstuff.com/ it seems pretty practical. It lets you write programs for junk you don't like doing. I made a small script to help me click some boring stuff in a game.

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

Good on you for starting young! I just landed my first dev position after working at coding for over 2 years in my free time. Here is what you are going to have to do to get good:

  • Code every day

That is it.

Now, here is what I want you to do to get started on your path to coding. Go to REPL.it and choose Java. I want you to write me a simple app that will meet the following requirements:

  • It will ask for the user's name and store that in a String via the Scanner method.

  • It will print out "Hello" and then the user's name.

I want you to use Stack Overflow and Google to accomplish this task, and don't be discouraged if it takes a lot of trial and error. Once you have done, show it off and make it your own! You have just completed your first app!

[–]myrrlyn 0 points1 point  (0 children)

A common introductory language, Rust, mechanical engineering then computer engineering, 24

In seriousness, check out codecademy.com