[ / / / / / / / / / / / / / ] [ dir / ameta / asatru / ashleyj / imouto / lovelive / maka / sonyeon / wooo ][Options][ watchlist ]

/tech/ - Technology

You can now write text to your AI-generated image at https://aiproto.com It is currently free to use for Proto members.
Name
Email
Subject
Comment *
File
Select/drop/paste files here
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Expand all images

Merry Christmas!

File (hide): edb1e1950c47d08⋯.png (1.51 MB, 1512x1072, 189:134, 14746036380390.png) (h) (u)

[–]

 No.842212>>842217 >>842264 >>842299 >>842964 [Watch Thread][Show All Posts]

Howdy /tech/,

I'm trying to kindle an interest programming. When I was younger I tried teaching myself C & Python. I struggled to retain any of what I read about them and ultimately only got the very basics down which I've mostly forgotten.

Recently I started working in the IT industry and I'm thinking maybe I should give programming another go. The two languages that really caught my attention are OCaml & F#.

I don't have a very strong background in math or formal logic so I imagine this will be difficult for me.

What are some decent books that'll help get me started?

 No.842213


 No.842217>>842230 >>842232 >>842253

>>842212 (OP)

>OCaml & F#

If you want to work on anything other than your pet projects then C,C++, Java, C#, Python, Javascript, PHP are your options. You have some niches like Kotlin for Android and of course Obj-C and Swift for iOS. Depends on where you live.

If you want to program just for fun learn Go programming language. It is simple and powerful, but still less annoying than something like Python.

Don't fall for stupid shit like forced OOP abstractions or functional programming. Stick to "Less is more", "Worse is better.", KISS if you don't want to start hating programming.

inb4 I trigger some functional programming austimo


 No.842230

>>842217

F# developers appear to be in high demand and they seem to make the most money.


 No.842232

>>842217

Hello, I am some borderline functional abstractions-over-abstractions fuck autist, and you didn't trigger me because you are mostly right.

If you want to learn programming, you should keep it simple. Start with basic operators, flow control, loops, functions, and then move to some more complex, but popular concepts, like OOP. Anything more complex will be a pain in the ass to figure out at first, but when the programming clicks, and if and only if you like it, you will start seeking other perhaps not strictly necessary, but very interesting programming concepts or languages.

I usually recommend Python as a first language, because it may be shit, but it's the closest you will get to pseudocode. Just don't stick around long enough to actually start growing fond of it.


 No.842253>>842302 >>843006

>>842217

Pretty sure languages like Rust and Go will soon become more and more "useful".

https://insights.stackoverflow.com/survey/2017#technology-most-loved-dreaded-and-wanted-languages


 No.842264>>842389

>>842212 (OP)

C and Python are excellent choices in my opinion. From here on you have decisions to make:

- If you want a job as a coder: C# .NET, Java, JavaScript (webdev)

- If you want to have fun and code as a hobby: Go, Python, D

- If you want to become elite computer hacker: x86 Assembly Language (ASM), C and C++

- If you want to waste your time bending your brain: LISP, J, Brainfuck and Rust

>I don't have a very strong background in math or formal logic so I imagine this will be difficult for me.

Whoever said you need those? No really. Programming is in essence the art of telling the computer what to do, in the form of instructions that it can run automatically. Better languages (specialized even) will let you express your thoughts easier than poorer languages (esoteric) but there will always be some resistance from the language: verbosity, redtape, bureaucracy, boilerplate, however you want to call it. That's why there is no absolute best language: for the given task and mind, some languages are better than others.

What I'm trying to say, a lot of your struggle will be with finding how to express yourself elegantly and cleanly in the language you've chosen, in the hope that your work will outlive you. Or maybe not, I don't really know what your goals are.


 No.842299

ITT: people who think they know OCaml and have already dismissed it

ah, I was one of you once.

start with this: https://blog.janestreet.com/effective-ml-video/

>>842212 (OP)

you don't need a strong background in math or formal logic. Just grab "OCaml from the very beginning" or go through tutorials on ocaml.org. "Real World OCaml" is pretty good (very good in parts) too but it's a distraction to have to set up Jane Street's alt. stdlib before you do anything. One option: don't set up Core and still follow Real World OCaml as much as you can.

Although, you should definitely set up Tuareg with merlin and ocp-indent in Emacs as the Real World OCaml's webpage suggests. Or vim with merlin and ocp-indent.


 No.842302

>>842253

lol stackoverflow is an abortion


 No.842352>>842356

File (hide): 480eee5b0c75252⋯.png (23.22 KB, 640x400, 8:5, llamatron-2112_1.png) (h) (u)

Learning Perl book by oreilly is a good start.


 No.842356

>>842352

Perl is to awk what C++ is to C.


 No.842389

>>842264

I agree mostly with what you said except your dismissing the math and formal logic concern of the OP.

Computers are just logic engines afterall, so understanding "if A is B and C is A then B is C" is fairly insightful.

As for the math, computers compute, so knowing how to compute numbers is necessary.

How much beyond a cursory introduction, that depends on what the user wants to program; i.e. what the OP wants to do.


 No.842964>>842976

>>842212 (OP)

I'm going to suggest starting with a more popular language. As a beginner, you want something with a lot of material for beginners, not just regarding the language itself, but how to install the language and tools, how to debug, which libraries to use, tutorials etc. Of all the languages that exist, Python is the easiest to use, and also has the most material for beginners.

Something like Haskell, OCaml or even C is better once you've picked up the basics.


 No.842976>>843001

>>842964

bah. You have to try a lot harder than OP has to find a language that you can't get answers easily for.

>Python is the easiest of all languages that exist

this is actually a grotesque lie. Python has faked it until it made it well enough to today have a lot of tutorial material, but it was and forever will be a shit dynamic OOP language, and there's nothing easy about understanding the total mess that large python programs devolve into, nor is it easy to make changes to python programs without breaking them. The more important a program, the more terrifying it is for it to be in a language like python, which won't even catch a blatant typo until it's hit at runtime.

>b-but, if you use one of a slew of desperate coping mechanisms for an inherently shitty language

Yeah, yeah. So much effort goes into putting lipstick on pigs in tech. It remains that if you're handed a legacy python codebase, it probably won't actually have the lipstick on it. 'Cause, while inherent shittiness is inherent; the elaborate coping mechanisms have only been used if you're lucky.


 No.843001

>>842976

>bah. You have to try a lot harder than OP has to find a language that you can't get answers easily for.

Really depends on you definition of "easily". Basic questions like "How do I install X", "What does this error mean", "how do I iterate through a string" etc. are going to be easier to find answers for for Python than other languages.

>this is actually a grotesque lie. Python has faked it until it made it well enough to today have a lot of tutorial material, but it was and forever will be a shit dynamic OOP language, and there's nothing easy about understanding the total mess that large python programs devolve into, nor is it easy to make changes to python programs without breaking them. The more important a program, the more terrifying it is for it to be in a language like python, which won't even catch a blatant typo until it's hit at runtime.

I'm more than familiar with the complexity of Python under the hood. I've worked extensively with the Python C API (the API for dealing with Python internals), I've hit the capturing-loop-variable issue multiple times, I've tricked Python into thinking statically linked object files were dynamically linked so that it could load a C extension, etc.

But the point remains that superficial complexity also matters, especially for beginners. I'm not recommending OP write a 100,000 line codebase in Python, or program in Python forever. The question was about starting programming, and for the reasons I've given, Python is the best language to start programming.

I started with Basic and then Visual Basic, but the world has moved on since then.


 No.843006

File (hide): f353506121a8f0c⋯.jpg (30.67 KB, 500x375, 4:3, anydaynow.jpg) (h) (u)

>>842253

>Pretty sure languages like Rust and Go will soon become more and more "useful".




[Return][Go to top][Catalog][Screencap][Nerve Center][Cancer][Update] ( Scroll to new posts) ( Auto) 5
15 replies | 2 images | Page ?
[Post a Reply]
[ / / / / / / / / / / / / / ] [ dir / ameta / asatru / ashleyj / imouto / lovelive / maka / sonyeon / wooo ][ watchlist ]