Jump to content

Best language for a begginer?

spellmanuk

hey,

 

sorry, this is a really boring and generic question I know but I wanted to know what the best language to learn for a novice programmer?

 

I know a tiny tiny tiny tiny tiny tiny amount of HMTL so little, in fact, idek why I'm mentioning it, however, I wanted to know what the best one was to learn and by the best one I'm talking about learning soothing because it's the easiest one to learn I'm thinking more which ones are the most useful and relevant, something that has a broad usage since I'm not looking to learn for any reason in particular. 

 

Again, sorry for the super boring generic question and thanks in advance

I lurk a lot

Link to comment
Share on other sites

Link to post
Share on other sites

Go first C and C++ then Javascript and Python

My Rig : https://pcpartpicker.com/list/MTBd2R

My VM Server : https://pcpartpicker.com/list/rPR6gL

My Backup Server : https://pcpartpicker.com/list/cRQYYr

My Storage Server : https://pcpartpicker.com/list/tzzR9W

My Router : https://pcpartpicker.com/list/bMPN4C

My Laptop : Lenovo Z575 with 6 GB RAM (1866 MHz), Crucial MX300 525 GB & Western Digital 2 TB (Removed optical drive)

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, domandric034 said:

Go first C and C++ then Javascript and Python

awesome cheers mate

I lurk a lot

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, domandric034 said:

Go first C and C++ then Javascript and Python

actually it depends on what you want to create, if you're after making websites then html,css,js and php/node. If you're after windows applications then c# or java. For command line tools c#, java, python, ruby depending on platform. 

 

programming languages are tools, you don't use a spanner to put in a nail, you use the right tool for the job.

 

Learning Object Orientated Programming, kiss, dry and the other practises are more important than learning any particular language.

 

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, vorticalbox said:

actually it depends on what you want to create, if you're after making websites then html,css,js and php/node. If you're after windows applications then c# or java. For command line tools c#, java, python, ruby depending on platform. 

 

programming languages are tools, you don't use a spanner to put in a nail, you use the right tool for the job.

 

Learning Object Orientated Programming, kiss, dry and the other practises are more important than learning any particular language.

 

 

well while i have no particular need for learning other than just to learn i was thinking more making windows applications or maybe iOS/android stuff as a long term goal 

I lurk a lot

Link to comment
Share on other sites

Link to post
Share on other sites

30 minutes ago, peej said:

well while i have no particular need for learning other than just to learn i was thinking more making windows applications or maybe iOS/android stuff as a long term goal 

If you want Windows apps you need to learn c# although it's a bit complicated. I'd recommend starting with command line stuff and python. Great place to learn is codecademy.com. For Android you need to learn java and s swift for Apple but you also need a mac and pay apple $100 a year.

Link to comment
Share on other sites

Link to post
Share on other sites

A Language is a tool to achieve something, first find out what you want to make like a website or a windows program maybe a App for android or IOS.

Once you know that then look at your project and see which tool (language) you pick for that.

 

If there is no specific project make one else for the sake of learning a language pick a language that is heavly used like C++ C# or something.

So it makes it easier to get into other languages.

Quote or mention me if not feel ignored 

Link to comment
Share on other sites

Link to post
Share on other sites

26 minutes ago, Benjamin Misell said:

If you want Windows apps you need to learn c# although it's a bit complicated. I'd recommend starting with command line stuff and python. Great place to learn is codecademy.com. For Android you need to learn java and s swift for Apple but you also need a mac and pay apple $100 a year.

You can use c# to create both iOS and Android applications. though I agree on the command line you can do that in c# and stay in the same language. c# might be lightly hard to start than python but you are forced to use types for varibles which will help out later on.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

Even though I personally dislike it, I'd recommend Java (as a basic start).

You've stated no real ambition that would allow us to guide you to a specific language.

 

Other people have brought up important points regarding what learning to program actually is. At first, you'll be bogged down in syntax and be developing a more logical way of thinking. After that, you'll consider the practical usages of the language. Java isn't really that well suited for the majority of things people give it credit for. It's an easy way to get a pretty mediocre job though. Good jobs beyond that will require esoteric abilities that go beyond simply 'knowing' a language.

 

I reckon Java is taught at many universities because it's easier to introduce them to OOP without the Microsoft nuances that are thrown into C# (even though I'd say, as a language, C# is much better designed). It's a lot more simple to teach SOLID, GRASP, design patterns, etc. without these nuances getting in the way. Other factors such as: portability (inb4 CoreCLR - not my point), and out-of-education job prospects. Oracle also likes to push its certificates through education authorities. 

 

So, with that in mind I'll give my my rundown:

Not sure what you want to do? Python or Java.

Want to know more about programming in general? C. I consider C as fundamental (perhaps not the standard lib but the fundamentals it makes prominent are, as I said, fundamentals).

 

Don't look at these suggestions and think I mean 1 language only. This is just a good start before you begin to prioritise your ambitions in a way that makes choosing a practical language a lot more viable. 

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

Woo-hoo, my favorite topic!

 

Here's a number of (unsorted) recommendations for a beginner:

 

1. Start with Common Lisp!

 

Pros: Common Lisp, being a very mature language (first standardized in the 1980s), is quite unlikely to get major API breakages anytime soon, i.e. you won't have to adapt new language features every few years. It is basically an "executable lambda calculus", so it includes a lot of the shiny lambda and closure features other languages are still missing. The REPL allows you to gradually extend code which is currently running (i.e. modify your applications while using them). There are great and free books for it, e.g. Practical Common Lisp and Wikibooks. Paul Graham said that learning and using Lisp will make you a better programmer.

 

Similar to Python, Perl and other popular languages, there is a shitload of libraries you can just include and use. The language ecosystem is, despite of its age, alive and kicking. SLIME is probably the world's greatest IDE for any language. Performance-wise, certain Lisp implementations can even be faster than C. Code examples: See rosettacode.org.

 

Cons: Due to Lisp's unique approach, it will be hard for you to adapt any Lisp knowledge to non-Lisp languages. Don't worry, there are a lot of other Lisp languages, e.g. Clojure and Scheme. You can even script certain GNU applications like Emacs and The GIMP in a Lisp language. C-like languages are an entirely different thing though.

 

2. Start with Perl 5!

 

Pros: Perl 5 is an ubiquitous language, it is a part of the standard distribution of quite some operating systems so there is a good chance that you can start right away. Its legendary CPAN directory includes modules for quite anything. Perl inherits some of its specialties from shell scripts, so if you have ever used the shell of a Unix-like system, you might feel right at home. Perl 5 is also rather mature, currently being in its 24th release and still being maintained, so it is unlikely that you'll ever have to change your working code. As Perl is a pure scripting language (there is no official way to create a binary application with it), all it takes to modify your code is a text editor. There is no REPL though.

 

There is, of course, a good Wikibook for learning Perl. I've taught someone the basics of Perl within one week, so it is easy to adapt without any previous programming knowledge. Code examples are available on rosettacode.org again. As Perl uses certain constructs from C-like languages, you can even learn C, C++ etc. with your Perl knowledge later; also, PHP was initially based on Perl, so if you're interested in PHP, learning Perl might help you here.

 

Cons: Some people say that Perl's syntax reminds them of a swearing Donald Duck. Yes, there are a lot of symbols (@#$...) in a Perl script, helping you to understand what a certain variable is (array, hash, string, ...) and what it is not. - With Perl 6 (very) slowly replacing Perl 5, the advantage of having a very consistent package ecosystem may fade over the next decade.

 

3. Start with C!

 

Pros: C is everywhere. If your computer has an operating system, it (most likely) also has a C compiler, even on niche systems like RISC OS and Plan 9. Due to this fact, C has a library for anything, it can even be a great choice for web applications. As C's language core is often called a portable assembler, C code is usually translated to very efficient machine code, making your code do exactly what you expect it to without too much fiddling from your compiler or linker.

 

Cons: The learning curve of C is actually a vertical line. :) Seriously, C is not your friendly beginner's language, it basically punishes you for even the smallest mistakes. This could as well be a positive aspect though, you will learn to avoid sloppy coding. If you are afraid to jump into cold water, you might start with C++ instead, C++'s current revision C++17 is rather beginner-friendly and (almost) every valid C program is also a valid C++ program, so you are able to slowly turn your C++ code into C code while you learn the differences.

 

Concerning Python: Please don't use Python. It is a horrible language, teaching you a horrible coding style.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

39 minutes ago, Benjamin Misell said:

If you want Windows apps you need to learn c# 

I wrote a number of Windows applications (why does everyone say "apps", actually?).

None of them was written in C#.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, Dat Guy said:

I wrote a number of Windows applications (why does everyone say "apps", actually?).

None of them was written in C#.

Microsoft has been pushing the idea of "apps" since Windows 8. Windows store apps became quite the craze within the Microsoft-ish sub-communities. 

I think it's down to things like UWP (https://docs.microsoft.com/en-us/windows/uwp/get-started/whats-a-uwp) that these terminologies have become more prominent. I'd still definitely recommend C# for Windows applications regardless (as Microsoft does, depending on features).

 

What I don't understand is why Microsoft continue to push Visual C++. It seems more like a band-aid that perpetuates a messy project (they even revived the syntax choices for C++/CX). I've never truly believed in interop between managed and unmanaged languages (anything beyond a managed plugin system e.g. like something built on Boost::Python is a mess to me). I think Microsoft have too much time and money on their hands and need to employ some hipster to throw around "apps".

 

The only Windows applications I've written post like 2014 have only supported Windows because Windows supports Qt applications (so it's coincidental for the most part).

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, stmfd sp!, {lr} said:

What I don't understand is why Microsoft continue to push Visual C++.

To be fair, Microsoft's C++ compiler does quite a good job supporting recent standards, even when compared to GCC. :) 

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Dat Guy said:

To be fair, Microsoft's C++ compiler does quite a good job supporting recent standards, even when compared to GCC. :) 

Clang lifestyle.

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dat Guy said:

Woo-hoo, my favorite topic!

 

Here's a number of (unsorted) recommendations for a beginner:

- snip -

OYY you bloody bastard!! I have no problem with you giving your opinion, (it's pretty informative), but I'll never back off from defending Python, If you copy-pasta your post, I'll copy-pasta my response!

 

Python Pros:

1. Easy simple syntax:

Python is dynamically typed which means you don't have to declare variables so be able to use them. i.e. you don't need to write int i, string s, double d[20], because the interpreter does that for you. It can be a con for advanced programmers (lack of control) or working in large groups (complexity), but the pro is that for learning to program it lets you concentrate on the logic of a program, the understanding of the algorithm instead of what could be percieved as busy-work.

Also it makes for very "human-readable" code. Also indentation matters, so code blocks always look very organized and simple to understand. Understandably many progamers may hate this. (stockholm syndrome to brackets, IMHO { })

 

2. Lots of great Learning Material

Being the simple syntactical language it is many have chosen (as OP) to learn this language, maybe as a first step, and that has made for an abundance of great learning materials to start programming. Also many tutorials, and many computer science fundamentals are taught readily with python. There are many online interpreters so you can code through your browser. This is a big Pro.

 

3. Reach

I may be repeating myself but the fact that Python has seen such widespread adoption is again a Pro (not unique to Python, ofc, see Java). Python has many many packages to do anything you could want, the community is very big and works with it a lot. Python has lots of use in scientific research, data analysis, bioinformatics, server-side applications, networks, web-devel, etc.. It isn't the only option for any of it, but it is perfectly capable.

 

Anyway these are off the top of my head.. But I do understand the disadvantages it has believe me, (it's too slow, for example, for what I do). 

But I leave this here: OP once you have python running. Go into the python interpreter and:

import antigravity

You'll thank me later ;)

 

Personal Rig:

[UPGRADE]

CPU: AMD Ryzen 5900X    Mb: Gigabyte X570 Gaming X    RAM: 2x16GB DDR4 Corsair Vengeance Pro    GPU: Gigabyte NVIDIA RTX 3070    Case: Corsair 400D    Storage: INTEL SSDSCKJW120H6 M.2 120GB    PSU: Antec 850W 80+ Gold    Display(s): GAOO, 现代e窗, Samsung 4K TV

Cooling: Noctua NH-D15    Operating System(s): Windows 10 / Arch Linux / Garuda

 

[OLD]

CPU: Intel(R) Core(TM) i5-6500 @ 3.2 GHz    Mb: Gigabyte Z170X-Gaming 3    RAM: 2x4GB DDR4 GSKILL RIPJAWS 4    GPU: NVIDIA GeForce GTX 960    Case: Aerocool PSG V2X Advance    Storage: INTEL SSDSCKJW120H6 M.2 120GB    PSU: EVGA 500W 80+ Bronce    Display(s): Samsung LS19B150

Cooling: Aerocool Shark White    Operating System(s): Windows 10 / Arch Linux / OpenSUSE

Link to comment
Share on other sites

Link to post
Share on other sites

Dat Lua doe. 

 

(Plz don't crucify me Dat guy, it was a joke. I know it has dynamic variables like python ... I know...) 

Link to comment
Share on other sites

Link to post
Share on other sites

I never saw a real-world application written in Lua. There must be a reason for that.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, peej said:

sorry, this is a really boring and generic question I know but I wanted to know what the best language to learn for a novice programmer?

Pretty much this:
 

2 hours ago, vorticalbox said:

actually it depends on what you want to create, if you're after making websites then html,css,js and php/node. If you're after windows applications then c# or java. For command line tools c#, java, python, ruby depending on platform. 

 

programming languages are tools, you don't use a spanner to put in a nail, you use the right tool for the job.


To help, have a look at this:
 

 

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

Don't read the linked thread. It basically states that Python will be a good choice for about anything.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Those arent programming languages but its basicly coding what you do. Its a great start if you are interested in web apps/websites.

Once you start getting familiar with it you should pick some server side language to get further if you really want to make some nice functional websites.

Quote or mention me if not feel ignored 

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, peej said:

@Cruorzy @vorticalbox @stmfd sp!, {lr} @Dat Guy @VicBar @straight_stewie

 

so, in the end, I decided to just go with HTML 5 and CSS since I kinda knew some so far I've managed to do this, thoughts?

 

http://toasterbag-pjduffield97452529.codeanyapp.com/

The reason why others are saying HTML and CSS aren't programming languages is because they're stateless. They can be used to draw things on your screen in a web browser, but what is drawn can't change unless the user clicks on a link to another page or you use a programming language like Javascript. You can't actually make a program with HTML/CSS, so they are not programming languages.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×