[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

Does it really matter which programming language you start with?

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 74
Thread images: 3

File: 1479754998043.jpg (130KB, 1024x724px) Image search: [Google]
1479754998043.jpg
130KB, 1024x724px
Does it really matter which programming language you start with?
>>
Well of course. Languages are classified as "beginner friendly" for a reason. As a complete beginner you wouldn't want to start with C++ or Assembly for example.
>>
>>61255233
I mainly see three types of people recommend three different ways, though:
>start with C and learn about how computers really work
>start with a high level language like Python, Ruby or JS because they're a good introduction to programming concepts
>start with Lisp/Haskell because it's magic
So, who's right?
>>
>>61255269
start with something because it's easy to pick up and progress with
so python basically
>>
>>61255269
nothing really matters. I'd suggest starting with c, a lot of languages are similar to it
>>
>>61255269
Well, out of these 3 ways you mentioned, which one is the most appealing to you? In my opinion, "introduction to programming concepts" sounds the best.
Python is most often recommended for a good reason: it's easy to learn. It has a fuckload of resources and the community is so large. Once you're comfortable with Python you can learn something else.
>>
Start with algorithms and lots of gusto and youth.
>>
>>61255269
I got told by a compsci professor once that the reason they start people with FP is to demoralize the know it all shits who come in knowing visual basic or rudimentary java/html and think that makes them coding gods
>>
>>61255225
If you start with an OOP language you will probably learn bad habits and thus when you move down to other languages your code will be steaming shit.

Start with a lower level language and work your way up.
>>
>>61255590
>If you start with an OOP language you will probably learn bad habits
Such as?
>your code will be steaming shit
Is it impossible to just learn good habits with higher level languages?
>>
>>61255269
all three of them
>>
>>61255604
It's not impossible, but you won't.
>>
>>61255690
>you won't.
Why? Please explain.
>>
>>61255269
What >>61255689 said
Maybe start with python a month before adding C and Scheme, but if you have time I think you should cover all three
>>
>>61255461
>which one is the most appealing to you?

Pretty much this. It doesn't matter if you start with the "best" language if you stop learning to program after 4 weeks because you aren't motivated anymore
>>
I've dabbled in a few different languages but I don't really know any.
I know a bit of Python, some JavaScript, HTML, CSS (not programming, I know), some Ruby (and Rails)
Should I just keep on learning Ruby and JS for now or switch to C or Scheme? I'm going to study them eventually, but is scripting and web a bad way to start?
>>
File: 1474152758139.gif (483KB, 243x270px) Image search: [Google]
1474152758139.gif
483KB, 243x270px
>>61255225
Ada is a really good first programming language
im glad its in the op
>>
>>61255225

>periodic table of x

fucking reddit
>>
What are the "bad habits" people often speak of?
>>
>>61255934
Excessive (mis)use of """design patterns""" without understanding their purpose or how to design programs any other way (Java; Cargo cult programming).
Being unable to do anything but glue libraries together and unable to produce any actual work on their own (Python, Javascript).
Writing software without any regards for performance.
>>
>>61255994
Aren't design patterns good to solve common problems?
>Writing software without any regards for performance
How is that a problem only encountered with high level languages?
Isn't it more about being disciplined enough to not have useless functions all over the place and not using control flow for nothing?
>>
>>61256024
>Aren't design patterns good to solve common problems?
When I say """design patterns""", I'm specifically talking about the https://en.wikipedia.org/wiki/Design_Patterns kind.
They are stupidly over-engineered, over-complicated, boilerplate-heavy shit which are really just trying to overcome shortcomings in Java. Honestly, they showcase the worst of OOP as a whole, and how stupid OOP actually is.
>>
>>61255269
>C
Novice language: teaches you the basics of computers, hardens you with explicit memory management and great verbosity and constraints

>Python
Expert language: you use it most of your life because you realize programming is a tool to do more interesting tasks. It allows you to deploy quickly while retaining C performance if needed (numpy, tensorflow, ctyhon, etc).

>Lisp
Enlightenment language: you detach yourself from the "coding as a tool" paradigm and immerge yourself in world of pure reasoning and no practical application whatsoever.
>>
>>61256098
So in order, one should learn C > scripting language > functional language?
>>
>>61256103
Yep.
Maybe also pick up Java between C and Python and develop a simple Android app, so you learn how to keep an OOP project organized.

It really depends on how good you want to become. If it's just for shits and giggles then you can skip to python directly, if you just want to build then stick with Android apps.
The path I wrote above is only if you want to git gud
>>
>>61256123
So what happens if I learn a scripting language before C? Am I doomed to be a shitty programmer forever?
>>
>>61256098
>>Python
>Expert language
Nobody in their right mind would use memesnek for anything non-trivial.
>>
What's the best resource to learn C? K&R?
>>
>>61256098
>>61256123
>Python
What about Perl, Ruby, JS?
>>
>>61256139
Tell that to 95% of machine learning, big data and analytics codebases out there. As I said, most heavy stuff runs in C++ anyway so why wouldn't you use it?

>>61256151
Who, hipster, lol
>>
>>61256195
>hipster
How is that valid criticism though?
Everytime I ask /g/ what's wrong with Ruby, I get the hipster/SJW answer.
>>
>>61256142
If you can read it for free, sure. Don't make the mistake of buying a copy.
>>
>>61256199
Because nobody else is dumb enough to use it maybe?
>>
>>61256225
I already own a copy.
It is sufficient though? It's a pretty small book.
>>
>>61256231
Again you provided no actual criticism of the language itself.
>>
>>61256234
>>61256142
It's decent. It's outdated, but still covers like 95% of what you need to know.
However, it is not a book geared towards people new to programming. It flies through the fundamentals VERY quickly.
>>
>>61256255
>people new to programming
I know the basics (control flow with conditions and loops, common variable types, what a function is). Is it not enough?
>>
>>61255225
Ok, I will probably get trashed for this but is there somewhere a tutorial or something that teaches what the difference between all the types are? I know OOP and I could probably describe it to a person with no knowledge of programming, but I would seriously be hard-pressed to define the others.
>>
>>61256269
You'll probably be fine.
>>
>>61256285
Last question: approximately how long does it take to go through K&R assuming I take the time to understand it?
>>
>>61256234
Yeah. It's not going to turn you into a wizard, but you'll know how to write C (which is not a huge language.)
>>
>>61256306
As long as I can get a good understanding of actual programming with it then it's fine. I also own the dragon book, but I've heard it's very outdated.
>>
>>61256296
I don't know. I imagine it varies hugely by person.
Probably somewhere in the order of a couple of weeks to several months.
>>
>>61256319
Alright, thanks.
>>
>>61256311
>it's very outdated.
It's just tediously long
>>
>>61256281
just look up wikipedia or something
the easier ones are functional, imperative and statically/dependently -typed
>>
>>61256720
I meant more like some dedicated site with maybe example code to match. The article on imperative programming doesn't seem very beginner-friendly to be honest.
But yeah now everything points to wikipedia anyway.
>>
>>61256123
Not the guy you responded to; I'm currently doing a two-month long web development "boot camp" for my job but I want to learn real programming. Is it a bad idea to get into C while also working on back-end projects? We'll probably be using Django or Rails, I'm not sure yet.
I want to git gud.
>>
>>61255461
You will also learn next to nothing of value - unless you call program flow control programming. Going from Python to C isn't going to make learning C any easier, nor will it reduce the amount of things you will have to learn. What it will do, is give you a lot of preconceptions that you'll have to overcome to move forward. All these threads about how [low level language of choice] is utter shit are probably being made by people who are forever stuck in the comfort of their pre made scripting libs.
>>
>>61257199
Bump
>>
>>61255225
Yes I started with visual basic and had to spend a year unlearning it so I could move to something else.

I still don't get pointers that well. Fuck
>>
>>61255225
Not as long as you start with bash
>>
>>61256139

uh uh, sweetie. like he said before, all of the "heavy lifting" in python is done in C, just wrapped in python classes & functions.

the only reason to write something from scratch in C or C++ or whatever is to jerk yourself off for being a "real" programmer
>>
>>61257199
I don't know, you may be fine.
A two months boot camp will probably only teach you to copy-paste files and get a working website up quickly, no real programming would be involved.

So yeah, pick up C for a while and do some of pic related.
>>
>>61258092
Wait, I was reading the challenges in the pic and they are definitely not entry-level if done in C.
Google some equivalent challenges and do those, you'll be able to do these after a month or two
>>
>>61258132
>definitely not entry-level if done in C.
What language are you supposed to use to do them?
>after a month or two
A lot of the stuff listed on the pic looks like it would require more than a few month's practice though. Is it that easy to make a bootloader?
>>
>>61255225
The choice should not be stopping you from getting started.
>>
>>61258132
Something natively object-oriented and with a good graphical library, like Java or C++.
I'm talking about the green ones, obviously
>>
>>61258174
>>61258584
>>
>>61258584
Which is better, Java or C++?
>>
>>61260913
Literally pick the poison with which you want to die.
With Java you can make Android apps, with C++ you can be more game oriented I guess.
Either is fine for the challenges above
>>
>>61255225

can anyone explain the difference between all the types

i only know scripting and a few declarative ones.
>>
>>61261006
Are there no differences in speed and efficiency? Is the syntax horrible with both?
I don't give a shit about Android apps so should I go with C++ by default?
Which one is the most useful for sec?
>>
>>61261053

pls respond
>>
>>61255225
>Haskel
literally kill yourself whoever made that
>>
>>61261053
>>61262144
Same question has been asked already, apparently wikipedia is your friend. Still, I would love another more friendly/noob explanation
>>
>>61255569
That's fucking gold. I wish that was done to me. I went in knowing C, Python and VB.NET/C# at a beginner level. Seeing Haskell would have fucked my brain up.
>>
>>61255225
>JS
>object orientated
kek

JS is more multi-paradigm than fucking Python.
>>
>>61255225
>lisp
>functional
>>
>>61262960
Can you even read?
>>
>>61262999
KEK, woops.
I don't know how I managed that. Fucking dyslexia m9

That's even worse.
>>
>>61261070
>Are there no differences...?
There are, but you will literally never notice them unless you become really short in resources (we're talking embedded systems).

>Syntax
C++ is a little uglier and definitely more messier, you'll probably never master it fully.

>Don't give a shit about apps
You can still go with either

>Most useful for sec
For netsec Python, Perl, anything that can do complex stuff in few lines.
For things like local exploits and shit then I'd say C, but then things get really dark and you'll most certainly need to know assembly.
For web sec then you may probably want to look into JavaScript and PHP.
Don't get in over your head so soon tho, start easy and see where your interests go.
>>
>>61263802
What's the difference between web sec and net sec?
>>
Everything is the same. Learn algorithms and data structures and then just use whatever language you want to accomplish what you want.
Thread posts: 74
Thread images: 3


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.