Jump to content

what language would you learn

DarshanDash

hi, 

 

so im a newbie to programming i read a lot about on wiki on how to affects cyber security , developing apps etc.

so im new to it like legit im blank so i wanna start learning but there are many languages and im clueless and brainless about it but im eager to learn

so can anyone tell me what language i should start out first? bear in mind im very new to it dont have any knowledge of how things work.I plan to go beyond this if i can understand the basics.

do reply thanks!!!

Link to comment
Share on other sites

Link to post
Share on other sites

Python is a great one to learn. Java and C++ are solid ones to learn as well. I started with Java and then went to C++ which made much more sense after learning Java. Then Python Im still learning but everyone keeps recommending it to me. 

Link to comment
Share on other sites

Link to post
Share on other sites

Python, HTML and CSS.

 

Then you can move to something more complex like PHP.

w3 schools (https://www.w3schools.com/) is very good for beginners learning how to code, or even more advanced users that don't code on the daily.

QUOTE/TAG ME WHEN RESPONDING

Please Spend As Much Time Writing Your Question As You Want Me To Spend Responding To It. Take Time & Explain

 

New TOS RUINED the meme that used to be below :( 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, DarshanDash said:

hi, 

 

so im a newbie to programming i read a lot about on wiki on how to affects cyber security , developing apps etc.

so im new to it like legit im blank so i wanna start learning but there are many languages and im clueless and brainless about it but im eager to learn

so can anyone tell me what language i should start out first? bear in mind im very new to it dont have any knowledge of how things work.I plan to go beyond this if i can understand the basics.

do reply thanks!!!

I would first decide what you want to do/build. 

 

Example for websites html,css and some framework angular, vu, react and then for the back end node, php,  python.

 

If you wanted to make desktop applications, c#, java and the like.

 

Once you pick an area get reading. Most security vulnerabilities are due to poor desigm choices than problems woth the technology its self. Not escaping user input for sql queries for example.

 

Python is a nice place to start for learning the logic, input, output as python removes the syntax difficulty, is basically English

 

 

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

Link to comment
Share on other sites

Link to post
Share on other sites

Another vote for Python.

 

But I agree with:

1 hour ago, vorticalbox said:

I would first decide what you want to do/build. 

 

If you have any idea for a project that would interest you then learning by doing is always a good way.

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, vorticalbox said:

I would first decide what you want to do/build. 

 

Example for websites html,css and some framework angular, vu, react and then for the back end node, php,  python.

 

If you wanted to make desktop applications, c#, java and the like.

 

Once you pick an area get reading. Most security vulnerabilities are due to poor desigm choices than problems woth the technology its self. Not escaping user input for sql queries for example.

 

Python is a nice place to start for learning the logic, input, output as python removes the syntax difficulty, is basically English

 

 

careful about frameworks. i'm working on react and it's useful to know javascript and es6 syntax. not sure of the others

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, M.Yurizaki said:

In addition to figuring out what sort of application you want to do, if you’re fresh to programming, you should learn the concepts and get a handle on the basics. Stuff that’s independent of languages.

if you dont mind, what are those concepts?

Link to comment
Share on other sites

Link to post
Share on other sites

25 minutes ago, Technicolors said:

if you dont mind, what are those concepts?

Things like

  • What basic data types are, like integers, floating point numbers (especially their limitations), and characters
  • What an array or similar is
  • Functions, how to define them, how to pass in parameters, etc
  • Control flow like if-statements and loops
  • What "scope" is
  • A few design patterns and paradigms
Link to comment
Share on other sites

Link to post
Share on other sites

15 hours ago, vorticalbox said:

I would first decide what you want to do/build. 

 

Example for websites html,css and some framework angular, vu, react and then for the back end node, php,  python.

 

If you wanted to make desktop applications, c#, java and the like.

 

Once you pick an area get reading. Most security vulnerabilities are due to poor desigm choices than problems woth the technology its self. Not escaping user input for sql queries for example.

 

Python is a nice place to start for learning the logic, input, output as python removes the syntax difficulty, is basically English

 

 

Um i just wanna learn programming because I want to find something I can build so as I learn I want to find with what I learn I can develop.

Python is a good step to start so I'll start there thanks.

I'm not sure what you guys mean by SQL frameworks and all lol so maybe guide me through or introduce me to it?

I'd appreciate if you guys could recommend me some YT channels for learning programming and this framework

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, DarshanDash said:

Um i just wanna learn to programme because I want to find something I can build so as I learn I want to find with what I learn I can develop.

3

I would advise against this, You will have a much happier time thinking about what you want to create and then learning a language for that project.

Python is a good place to start but remember that programming languages are tools and you use the right tool for the job.

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

Link to comment
Share on other sites

Link to post
Share on other sites

15 hours ago, vorticalbox said:

I would advise against this, You will have a much happier time thinking about what you want to create and then learning a language for that project.

Python is a good place to start but remember that programming languages are tools and you use the right tool for the job.

Well then to answer your question an app.

Basically my plan was develop an app that could show bill payments for Electricity,Water and even Internet.Thats the plan though I have it mapped out in a rough sketch inside my head.

 

I also plan to make an app for a community which is like a forum which consists of a User Control Panel and Forums , contact info.

Link to comment
Share on other sites

Link to post
Share on other sites

so can anyone tell me what language i should start out first?

C.

 

 

 

Longer answer (from here):

 

---------------------------------------

 

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

1 hour ago, Dat Guy said:

teaching you a horrible coding style.

I'm not the biggest fan of dynamic typing either, but do you have any actual evidence to say that python teaches you bad style in a way that other languages don't? There are plenty of bad practices to be had in any language. You can write spaghetti code in any language, and it's equally bad no matter where it's written.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

27 minutes ago, Dat Guy said:

"Whitespace is syntax" is among the worst ideas one could have, IMO. 

not entirely disagreeing, but in practice it basically just results in "you don't need curly brackets and semicolons", especially for the simple routines that students make while learning. Not saying i'm defending it as a design choice, but I also don't think it automatically leads to bad style being learned by a budding programmer. Most "good style" has for more to do with naming, avoiding excess nestedness, modular code, and avoiding "clever" solutions than it does how you handle whitespace, and the whitespace that does matter most often (vertical spacing for legibility) isn't handled any differently by python.

 

That said, i've seen some extremely questionable uses of list comprehensions, but most beginners aren't diving into list comprehensions anyway.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

It all comes down to what you actually want to do. Do you want to do web stuff like websites? Dynamic webcontent the user can interact with? Do you want to do lots of math and physics with it? Are you looking for raw performance? Do you want to do IoT stuff? Building robots or programing microcontrollers?

Programming is a vast field and for most applications there are suitable tools and less suitable tools. It's like woodworking. You could do everything you want with a japanese handsaw, a chisel and a hammer but that's pretty time consuming. Heck, you could even go without a hammer and just use your bare hand or the back of your handsaw as a hammer. It's a good idea to use the right tools for the right job. That means: you're going to learn more than one language over time.

 

So what's a good language to start with?

If you don't know where you're going to go with your newly gained knowledge: Javascript + Node.js

 

There's a simple reason for it: dynamic webpages that interact with the user user Javascript. Period. There's no real alternative to it on the browser's side. Node.js gives you the opportunity to run Javascript on your server as well jus like PHP, Python or Ruby – but you save yourself one language. The support is great, quite some good frameworks out there and new web technologies are often implemented for Javascript at first (like WebAssembly or WebGL). And here comes the nicest thing of it: you can build "standalone" apps that just run and feel like any other app on your computer as well by using Electron (it's basically a boxed browser that runs your code). It's not perfect, there are some leaks in Electron but for a beginner it's totally fine imho. You'll end up with apps that run on basically any common system be it a PC/Mac, Android or iOS device. It's decently quick but of course not as quick as a compiled language.

 

If you want to do math/physics or deep learning and AI stuff: Python

 

Python is the go to language for mathematicians, physicists and many other scientists thanks to a broad variety of libraries and a strong community. It can't run in your browser directly so it's not suitable for creating websites though you can build your websites or more specifically your websites backend with frameworks like Flask for example. You'll still need to use Javascript for your browser though to get beyond a static HTML/CSS page. Most AI or deep learning libraries have been programmed for Python – it's a scientist's favourite.

 

You want to program microcontrollers and do some IoT stuff? C

 

There's basically no serious way around C if you want to play with microcontrollers. It's the go to language for low level stuff. Small errors will be punished severely because you're in control of everything on a very low level. 

 

You just want standalone programs and don't fiddle around with web stuff? C# / Mono

 

If it's good enough for the Unity 3D engine it's probably good enough for your needs as well. It has been influenced by C++, Objective Pascal and other languages and just brings it to a more user friendly level yet sacrificing some low level control and performance (compared to C++). It used to be Windows only (well, it was developed by Microsoft) but you can develop for macOS now as well. You could also go with C++ if you feel like diving deeper into your system's architecture and want more control. If you're up for that you'll end up with better performance. The Unreal 4 engine for example has been developed in C++.

 

If you want standalone Apps for macOS and iOS only: Swift

 

To some extent Swift is related to C#, Objective C, Python, Rust, Ruby and so on. It takes Objective C and pushes it to a more comfortable level. It has been developed by Apple for Apple but since macOS is just a heavily modded Unix under the hood Swift apps can run under Linux as well. Windows on the other hand is not supported. 

 

Alternatives: Objective C, Ruby, Haskell, Vala, D … that list could go on and on and on. 

 

So it's up to you: what do you want to do with your soon to be coding skills?

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dat Guy said:

"Whitespace is syntax" is among the worst ideas one could have, IMO. 

It does force everyone to follow the same coding format which makes it easier to read other people's code imo. 

Link to comment
Share on other sites

Link to post
Share on other sites

33 minutes ago, fpo said:

It does force everyone to follow the same coding format which makes it easier to read other people's code imo. 

Well it forces everyone to use the same indentation levels, which isn't exactly the same as the same "coding format", as there is HEAPS more to a style guide than just whitespace, and most of the really important bits have nothing to do with syntax. 

I also need to point out that whitespace syntax forces you to put extra syntax in for things like line breaks, which I am definitely not a fan of. You either have to wrap with an extra set of parens that aren't otherwise needed, or put a \ before the line break. Both of those don't really sit well with me.

 

For example:

def createPerson(self, personCriteria):
    return PersonBuilder().setFirstName(personCriteria.getFirstName()) \
        .setLastName(personCriteria.getLastName()).setAge(personCriteria.getAge()) \
        .setGender(personCriteria.getGender()).setMaritalStatus(personCriteria.getMaritalStatus()) \
        .setAllergies(personCriteria.getAllergies()) \
        .build();
           
def createPerson(self, personCriteria):
    return (PersonBuilder().setFirstName(personCriteria.getFirstName()) 
        .setLastName(personCriteria.getLastName()).setAge(personCriteria.getAge()) 
        .setGender(personCriteria.getGender()).setMaritalStatus(personCriteria.getMaritalStatus()) 
        .setAllergies(personCriteria.getAllergies())
        .build());

 

I get that it's minor, but I strongly dislike requiring additional syntax for those cases. What if the code is already paren heavy? You are then forced to use the top example, which is even worse imo.

 

I need to re-iterate my original point though, that I don't think this disqualifies python as a language. I think it has it's time and place, and education can definitely be one of those places. That said, I wouldn't want to write a large scale application in pure python (that's not really what it's for anyway).

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, Dat Guy said:

C.

 

 

 

Longer answer (from here):

 

---------------------------------------

 

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.

 

Didn't expect so much feedback from you guys but thanks lol I'll read it very carefully.

But I know there's a lot of discussion about why python isn't the best to start off and why I plan to do with that particular language.

I get everything everyone's opinion but my target is to get a proper knowledge of programming and than build it because I don't know how an app or web is build with this raw piece of programming language like print("Hello World") or Len("food") I don't know how stuff works yet I don't got the connection yet.

But for now I use YT as a guide so I've started learning Python from thenewboston and Java(Which is risky cause it's a huge language and complex) 

But I'll try C I'll see where I go

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

×