I want to learn programming. Is Python a good choice for a newbie?

I want to learn programming. Is Python a good choice for a newbie?

Yes. It forces you to learn good indentation habits

yes

It's alright

honestly, I would recommend learning the basics of C for a week or two (until you understand control structures, arrays, pointers)

C is the closest to a real "computer's language", Python is more productive but also more distant from the hardware

fuck off c brainlet
go jerk off your pointers

One of the best, honestly.

Julia fag

No, please start with Scheme and read SICP instead. Python will only teach you bad practices and make you focus more on the syntax than the content.

no learn perl

what about python vs ruby on rails?

Pascal is best

You came to wrong place to have a concise answer, boy. You will leave here crying and crawling.

This desu.

Lisp & C.

Unironically, yes to python. It will teach you the basics without busting your balls for doing something wrong. If you want a better idea of what tge language is doing to the computer, read about how python does things behind your back and rewrite your python code into C in a similar manner

Python is fine

Real interaction with hardware is completely hidden from you in Python. Python is written in C.
For learning purposes it's important to learn the basics of C otherwise you can't be a programmer.

Yes my man, just go with "Automate the boring stuff with python".

>Real interaction with hardware is completely hidden from you in Python.
Good. It's also hidden from you in C and beginners have other things to worry about than branch prediction misses and bulk allocation and other stuff most C programmers get wrong.

Beginners should learn that it's not fucking magic, that things happen in memory in a certain way. Python is a useful scripting language but programming should start with C.

/thread

>Beginners should learn that it's not fucking magic, that things happen in memory in a certain way.
You can't actually see what happens in memory in C. You just have a better guess. Nobody belives its magic.

t.mathlet

If you want that, might as well start with ASM
let OP get her feet wet, do some fun projects, get a job, learn C, write some drivers, learn ASM, realize that FORTH > C, and all that stuff by herself.

Don't rush things user, these things, take time you know?

>Nobody belives its magic.
Well, dynamically typed languages cannot be interpreted in any other way if you're a beginner.

Let OP learn what a fucking int is you POS.

It doesn't fucking matter jesus christ just learn whatever the fuck you are actually going to use.
If you later find that you want to learn a different language, do that.
It's not like learning a 'bad' or 'difficult' language first is going to render you incapable of learning anything else.

What about bad habits though?
A guy who starts with webdev shit isn't going to be as competent as someone who starts with systems engineering.

Like there aren't enough C tutorials for beginners that are very easy to follow. Starting with ASM would be context free as far as learning programming but learning what it is and looking at examples of ASM while learning the basics of C is also very useful.

>a week or two
a month at least

Do you have any particular resource in mind?

>Let OP learn what a fucking int is you POS.
You don't learn that in C, either.

Among the three most popular scripting languages for beginners:
Python is good to learn good habits, Ruby gives you more freedom, Perl is the most fun but can quickly become a clusterfuck
It depends on what you want to do.

Do the Nand2Tetris course first, only then head onto Python, which is an OK language for beginners. N2T will teach you the entirety of how computers actually work, and will allow you to think about your programming much more clearly.

It's not like you couldn't cobble together tictactoe or some shit, or even understand how algorithm and data structures complexities work without doing N2T first, but the in-depth understanding of the basics makes your later grasp of more advanced concepts(which high-level prog. languages like Python are) much more comprehensive. You will honestly understand how shit works and what happens inside, instead of just learning how to cobble together for loops.

I hope it's good because that's the next step in my plan after learning HTML, CSS, JS, PHP and WordPress.

yes, kys

Well thats more geared towards web development.

>less ruby jobs than python
>more ruby on rails jobs than django/flask

So python is a better choice as it leaves open more programing jobs unless you really want to go into web development in which case ruby and ruby on rails would be a better choice. I use python and django for web development and it works great for me , theres just less job opportunities for django though.

Wasn't RoR killed by node?
Is it even worth it learning RoR nowadays?

Learning any of them is better than thinking about it.

>Wasn't RoR killed by node?
No.
>Is it even worth it learning RoR nowadays?
Depends on your area.

Amazing book, literally got me into programming projects and the way of thought that goes into it.

>No.
But it's becoming less and less popular.

It merely got rid of the web hipsters/code artisans/sjw/macfagging starbuckos.
Good riddance.

These guys moved on to node?

What are the most important languages to know for /cybersec/?
Aside from C, bash and SQL of course.

Why do people post shit like this. you couldn't be bothered to google it and figure it out for yourself?

I see those fags use a lot of Python

Perl is probably more popular in the infosec community

int x=4,y=6;
if(x

Maybe in the 90s.

Perl is unmaintainable and unreadable

Yet it's still popular.

DISGUSTING
I
S
G
UNREADABLE
S
T
I
N
G

Society advances one funeral at a time

Perl isn't going to die anytime soon, though

...

>implying this means shit
There's a reason why it's called the duct tape of the Internet. It's everywhere, and even if it's not hyped up by web dev babies it's still omnipresent.

COBOL is present everywhere too, but would you call it "alive"? Are there any

COBOL and Perl aren't used for the same things, though.
Ruby's popularity has been decreasing. Is it dead?

What python book should I read?

KeK

for me, it is.

>What python book should I read?
Why read a book ever
Just learn online especially with phython there's plenty of resources

No. Learn a functional language like scheme or OCaml before moving on to oop

just fuck off, please
come when You >= 21 yo || YourIQ >= 79

who cares about the order in which you learn things

Functional languages typically aren't useful for production level code, but the things you'll learn using them will make you a much better programmer when you move on to languages that are actually used in industry. They force you to pick up good habits.

sure, but I meant you can acquire that knowledge after learning other languages. It doesn't really matter.
also, there aren't many languages that actually make you pick up bad habits.

That's the worst way to learn programming.

Start with Haskell or scheme, then move on to C and then learn a little assembler to understand how the C code maps to the hardware.

Finally throw all of that out and learn C++ which is the end game language. Be ware of Rusty idiots who will try to trap you into a training wheel language.

Consider the fact that python is what tween girls at kode kamp learn and you should have an obvious answer.

>being an elitist
learning one language or another isn't going to make you a bad programmer. it especially doesn't matter which one you start with, stop spreading this meme.
the "worst way" to learn programming is to worry which first language you should learn and never end up doing shit

Depends on what area of /cybersec/ you want to get into.

If you'd like to focus on web exploitation, you should know JavaScript, PHP and SQL. Also, Python helps for that area since you'll likely be building quick scripts to help you audit web applications or protocols (Scapy is awesome).

For binary exploitation stuff, x86/64 Assembly is pretty important, as is C/C++, bash and a scripting language of your choice (Ruby/Python/Perl). For government jobs, I see Java asked for a lot so that might be useful to know as well.

Hope my answer helped a bit, if you want to know what employers are looking for you should check job postings for the cybersec positions you're interested in because they will often list programming languages.

I'm not an elitist I'm speaking from experience. When I was 12, 2 decades ago, I learnt QBASIC and thought it's awesome and productive. The same thing people think of python today. Python is not much different but does away with end/next and replaces it with white space.

Had I used a less fun language like Haskell or scheme to learn I would have spent less time stuck in my QBASIC phase.

Python can be useful for some stuff, therefore it's not a waste of time
You can start with a scripting language, a functional language, or whatever you want it won't change much if you have drive to learn

For learning assembly I've been reading
Assembly Language Step-by-Step: Programming with Linux, 3rd Edition by Jeff Duntemann.

It starts off by going over the very basics of computing and slowly builds on those foundations. It can be a slog to get through that initial part but luckily the author keeps things easy to understand and you'll be thankful later on when you get to actually programming assembly that you took the time to learn the fundamentals of computer architecture, memory management, etc.

Racket

>the "worst way" to learn programming is to worry which first language you should learn and never end up doing shit
This. Analysis paralysis is the real killer here.

I'm mainly interested in network security. So probably your first suggestion.
Thanks, I'll look around.

>tfw have been suffering from analysis paralysis for 3 years now

help

Learn any language
Python, Perl, Ruby, C, Java, C++, Lisp, Scheme, Haskell, OCaml, Lua, JavaScript, C#, Fortran, ASM, Erlang, Scala, Clojure, Rust, Go
It really doesn't fucking matter. I started with Ruby yet I didn't end up a starbucks webdev. Learn what you want, need or like.