Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Starting programming

Name: Anonymous 2018-09-03 21:56

Is it a good idea to start programming with LISP through SICP? I've always heard mixed opinions: some say math and books aren't really important to programming and you should just get to the point (a language you want to learn) and some say you should be good at it and focus on learning math as well.

Name: Anonymous 2018-09-03 22:17

No, no, no. I'm a web developer and nobody in the real world uses Lisp or SICP. Any who tells you otherwise is either an old dude with a poorly-aging body of knowledge, or a troll or someone who fell for the SICP /g/ meme.

Things that are taught in universities these days (which are useful):
Web development -- many different routes for this, but web dev isn't really turing complete, and it's very different, so maybe start with Java or Python first
Java -- very useful, often used as a first language; garbage collection makes it easier to start out than with a language that require manual memory management
C++ (at least to learn more about memory management, references, destructors, etc. -- has lots of features you will probably never use, and it's more difficult to use than Java, but it's also faster and has some interesting features)
Python: very easy to use, neckbeards make fun of it for FIOC (forced indentation of code), but it's quite good, and then you can get into Django backend web development later, since that's the language it uses. Used for learning, data science, web dev, etc. It's often used for educational purposes, and it often the programming language that non-CS people use, due to its relative simplicity, combined with actually being useful (unlike toy things like Scratch)

If you want to get into mobile apps, then learn Swift and Kotlin. Technically you can still use Objective-C or Java, but they're on their way out for mobile.

Bottom line: start with Java or Python, then learn web dev and maybe C++. SICP and Lisp are less than useless, they're a waste of time and will teach you bad habits.

Functional programming won't get you a job. Object-oriented languages will (though Java is more multi-paradigm nowadays). Don't listen to Lisp neckbeards.

Name: Anonymous 2018-09-03 22:22

Oh yeah, and there's the obvious issue of: you're learning more than just a programming language's syntax. You're also learning about programming concepts, like editors, compilers, interpreters, debuggers, version control (git), project management, UI frameworks, programming concepts like primitive data types, control flow, data structures, algorithms, abstract data types, design patterns, etc. Knowing how to write a "hello world" program isn't enough. Many programming books and whatnot only teach syntax, often because the intended audience are people who already know how to program, or because it's just too simplistic and doesn't get into more advanced topics.

For your first programming language, you are learning the language, software required for development, a programming paradigm (such as object-oriented), etc. From there, the next languages you learn will be easier, so long as they're in the same paradigm. It won't be too hard to learn C++ when you already know Java. It might be harder to switch from Java to Haskell, but then again, Haskell most likely won't get you a job, so don't bother.

Name: Anonymous 2018-09-04 0:16

>>1
The advice from >>2,3 is offensive but not insane. It's however biased towards web dev and Java. Also, Python is crap, extremely useful crap.
There is no particular reason to start programming with Java or Python rather than, say, Scheme (Lisp). Note that I'm not saying ``don't learn Java.'' Instead, do not ``not learn Lisp.''
SICP can be a good way to start (it's not the only valid one). The key messages that you should take away from it are:
1.the language you use really does matter,
2.sometimes, you can massively improve that language for a particular purpose by defining new functions.
What you should *not* take away from SICP is that Lisp is the ultimate language, that more abstraction is always better or that processes somehow exist in an unphysical fairyland and that you should not care about technology.
Learn more than one language, preferably very different ones, and math if possible as well. Having some experience with functional programming will make you a flat out better programmer.
Finally, and this is really important, you will find mountains of advice, both related to programming and learning programming, programming guidelines, paradigm or language pissing contests, list of good practices and ``do's and don't's'' online. A lot of it is in good faith and some of it is actually absolutely *critical* to writing good code, but you should always understand why you're applying it, or the goodness of it will be spoiled. The following is a good example:
SICP and Lisp are less than useless, they're a waste of time and will teach you bad habits.
Functional programming won't get you a job. Object-oriented languages will (though Java is more multi-paradigm nowadays). Don't listen to Lisp neckbeards.
This is almost sound! It's possible that, as you learn Lisp, you come to take its idiosyncrasies (e.g. obsession with cons cells, recursion, symbols) as good practice. In this sense, yes, you should listen to >>2. But it's too easy to use this as pretense for closing your mind. And that will never make you a better programmer.

Name: Lasciate L'Esperanza 2018-09-04 1:29

Voi che entrate.

Name: Anonymous 2018-09-04 12:08

SICP is great regardless of the lanaguage youll'lll will be using professionally as it teaches not just Scheme but abstract thinking. you can also try HtDP if you want a more modern Lisp variant. other good thing would be starting low-level with assembly or maybe C to learn about memory, pointers, CPU and all that shit. you'll need to know both the low-level and high-level to be a good programmer.

Name: Anonymous 2018-09-04 12:38

I believe that starting with SICP is the best idea for the following reasons:
- It intentionally uses a simple, yet powerful language. Letting you start programming right away instead of wasting your time trying to learn the syntax.
- It can actually be used with most languages, only few things in it are scheme-specific
- It teaches you many important techniques and concepts, as well as how to properly think as a programmer.
- It is generally easy to learn new languages once you have learned how to program. If you want to do webdev you start it just a week after finishing SICP.

Even if you end up not selecting SICP, I would suggest to either start with Scheme or Python due to their simplicity. Languages like C++ and Java will bombard you with legacy concepts and complex syntax from the start.
After you finish with SICP I would suggest to start learning Haskell in order to get used with types.

Name: Anonymous 2018-09-04 14:28

>>7
6/10. Needs more parts about Haskell and functional abstractions solving everything, too weak on content.

Name: Anonymous 2018-09-04 14:41

>LISP through SICP

u mena scheme. i'd rather just learn lisp through a different source, tbh, even getting a good scheme implementation to learn sicp with is frustrating because mit-scheme and edwin sucks dicks. chicken scheme also sucks dicks. racket is not even compatible anymore.

and i can't see a reason not to learn a functional language, particularly lisp. all these new fancy fartapp/webapp reactive programming frameworks make heavy use of lambdas and monads and functional concepts, so you're better off actually knowing this stuff, it's kind of becoming the norm now.

Name: Anonymous 2018-09-04 14:51

I remember from childhood one more episode. When I was discharged from insane asylum at 10 years old (I was treated for child schizophrenia from the age of 8), my mother sent me back to the village to my grandmother, who of course told neighbors about my diagnosis, and in a couple of days the whole village knew that I had a schizo certificate.

Village children ran after me and teased "nikitka fool, nikitka fool ..." I tolerated for a while, but at one point broke and, grabbing an iron bar, chased two of them, a boy and a girl who by the way were even older than me. They were frightened and ran, but the girl stumbled and fell, rolling down the hill, and the boy, leaving his girlfriend, continued to run away (Russians do not leave their own, yeah). As I approached the girl, I struck her several times with a piece of iron on the body and on the head.

Militia men were called, but since I was only 10 years old, I was only strictly reprimanded. Now I regret that I did not kill this girl, because as Anton Lavey bequeathed, act upon others as they act upon you. It would be interesting then to ask her relatives and friends "well, you scum, and who is a fool now?"

Sometimes I dream about this episode, that I stab this girl with a knife.

Name: Anonymous 2018-09-04 15:44

>>9
Scheme is a LISP.
SICP is not trying to teach you LISP, it tries to teach you how to think like a computer scientist.

>>10
How were you reprimanded?

Name: Anonymous 2018-09-04 15:59

>>11
How were you reprimanded?
I was sent back to the city, because the conflict was unsolvable.

Name: Anonymous 2018-09-04 16:00

>>11
Scheme is a LISP.
lmao look at this brain genius over here, who cares if scopes work different on both languages, and who cares if cdr works different on empty lists, they are both LISPs!!!!!

SICP is not trying to teach you LISP
thus you should not use LISP, but scheme and current scheme implementations suck dicks because nobody cares about SICP or scheme anymore, and shut the fuck up, you LARPing bitch.

Name: Anonymous 2018-09-04 16:28

>>12
Why though? You did nothing wrong.

>>13
they are both LISPs
Yes, LISPs are different between each other.

thus you should not use LISP
Why? SICP is not trying to teach you Scheme LISP either.

and current scheme implementations suck dicks
Do they?

LARPing bitch
What is this even supposed to mean.

Name: Anonymous 2018-09-04 16:32

>>14
Why? SICP is not trying to teach you Scheme LISP either.
Not but SICP relies on scheme idiosyncracies to get lessons across as transparently as possible

Do they?
yes, geez.

What is this even supposed to mean.
have you even read a single chapter of SICP

Name: Anonymous 2018-09-04 16:34

yes, geez.
I will disagree. My experience with racket has been great.

have you even read a single chapter of SICP
I have completed my SICP.

Name: Anonymous 2018-09-04 16:41

>>14
Why though? You did nothing wrong.

Beating a girl with a metal pipe to the head is one wrong thing to do, regardless of what led to that. Basically, the problem got out of control.

Name: Anonymous ⋕⋕ Verified 2018-09-04 17:28

>>10
>>17
e/g/ic story /g/ro. Very ed/g/y.

Name: Anonymous 2018-09-04 17:44

>>17
Context matters. Beating a girl with a metal pipe when she has done nothing to you is an "evil" thing to do, but in this specific case, she did something to him.

>>18
Optimise

Name: Anonymous 2018-09-04 21:49

>>16
I decided to try racket again and it's much better to learn SICP now that it has a SICP library, so yeah, I might finish SICP now. Sorry for being a cunt about it.

Name: Anonymous 2018-09-04 21:52

I gave seriously replies (>>2,3) and the rest of this thread is just neckbeards arguing about Lisp and dumb shit that isn't hireable these days. OP, just look at >>2,3 and ignore the other garbage in this thread.

Name: Anonymous 2018-09-04 22:12

>>21
suck my cock dude

Name: Anonymous 2018-09-04 23:18

>>10
Now I regret that I did not kill this girl, because as Anton Lavey bequeathed, act upon others as they act upon you.

OK, but wouldn't Lavey's principle dictate calling the girl a fool, rather than murdering her?

Name: Anonymous 2018-09-05 5:12

An eye for an eye is dumb. You should do a head for an eye instead.

Name: Anonymous 2018-09-05 5:19

Why would you use racket instead of mit-scheme for the mit-books?
It even comes with a nice ide and works on windows and mac.

>>1
If websites sound fun go to w3schools.com and learn html,css,js,php
If games sound fun go download gamemaker and make one.

If you're sure you wan't to become a expert programmer you can go the whole way and learn it proper

Name: Anonymous 2018-09-05 5:34

>>25
Why would you use racket instead of mit-scheme for the mit-books?
Because it has a SICP mode and unlike mit-scheme is has been maintained in the last decade.

It even comes with a nice ide and works on windows and mac.
Same for racket.

Name: Anonymous 2018-09-05 7:24

if you don't want to use the racket language with sicp because of some slight incompatibilities, you can always use a scheme language (r5rs, r6rs) from the racket virtual machine, or you can read htdp instead of sicp as it's a sicp-inspired book made for racket specifically. but in general, the cool thing about racket is that its virtual machine was designed with easy language creation and interoperation between languages in mind. if your're are interested in that, read the 'beautiful racket' book which shows you how to implement things like the basic language inside racket vm

Name: Anonymous 2018-09-05 7:41

if you don't want to use the racket language with sicp because of some slight incompatibilities
There is big incompatibility with most industry standard languages and normal syntax notation, plus heavy emphasis on recursive abstraction and list structures. If you want web apps, you study javacript(or javascript-derived languages that compile to it), if you want to builds performance-oriented libraries or programs/games you learn C++.
The niche for studying Scheme is low-performance scripts, that is already dominated by python and ruby. Always ask yourself, what use-cases for Language X will be in 10 years and what skills you gain from only focusing on X?

Name: Anonymous 2018-09-05 7:51

You don't study scheme you use scheme to study programming which is relevant to every language that you use.
Scheme has a use-case which is education.

Name: Anonymous 2018-09-05 8:20

>>28
Learning a new language takes less than a week (and this is a lot already) if you know programming.

Name: Anonymous 2018-09-05 8:26

>>28
recursive abstractions are more popular than ever because of the influence of functional languages on mainstream languages. the syntax is an odd one, but I'd argue that learning it is a good exercise: your're are going to learn that syntax is less important than abstract thinking

technically, s-expression syntax matters in that it allows you to write macros that look like normal code. this is something I miss as I'm currently writing AST-parsing code for mainstream languages, and that's a pain in the ass.

Name: Anonymous 2018-09-05 8:36

>>28
the industry-standard languages of today will not be the industry-standard languages of tomorrow. 10 years ago, Java was still extremely popular in the enterprise and the rising popularity of Android made it relevant to apps. nowadays the enterprise landscape is more diverse when it comes to language choice, Android is gradually replacing Java with Kotlin and cross-platform apps are going for Javascript. 10 years ago, the standard for low-perofrmance scripts wasn't Scheme or Python or Ruby, it was Perl. you need to learn language independence - learn how to easily learn new languages. and Scheme is good for that.

Name: Anonymous 2018-09-05 9:08

industry-standard dubs

Name: Anonymous 2018-09-05 10:45

>>33
based dubsteen

Name: Anonymous 2018-09-05 12:30

>>2

>implying I want a (((job)))

Name: Anonymous 2018-09-05 12:39

>>35
who are you quoting?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List