[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / edu / hobby / tech / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / wiki / git ] [ GET / ref / marx / booru / zine ]

/tech/ - Technology

"Technology reveals the active relation of man to nature" - Karl Marx
Name
Options
Subject
Comment
Flag
File
Embed
Password (For file deletion.)

Join our Matrix Chat <=> IRC: #leftypol on Rizon


File: 1647279702074.jpg (497.33 KB, 1080x1080, 0Yik-kyZXnA.jpg)

 No.14145

Which language is better? Python, C++ or C#?
I want to learn how to plan an economy so i can work in OGAS or CYBERSYN 2.0 as Cockshott's successore.
I also want to be able to be a 1337 H4X0R and program an AI version of myself so that if i die, the AI can continue unlocking files on a mysterious and broken, powerless computer which i fixed in my spare time so that my friends (who have been trapped inside of a school and forced to kill eachother to escape) can figure out who the mastermind is.

 No.14146

im shay btw so im dumber than your average person and forgot my flag

 No.14148

Python

 No.14149

Python is the least bad of those three dogshit languages.

 No.14151

>>14149
w-what should i do if i wanna be super epic haxor though????

 No.14153

Try playing with this if you want to do the AI thing
https://numpy.org/doc/stable/reference/arrays.ndarray.html

 No.14154

>>14151
fizzbuzz

 No.14155

>>14151
C, and Python

 No.14156

File: 1647288206848.pdf (17.77 MB, 197x255, the_little_schemer.pdf)

Learning the core concepts of lisp/scheme won't hurt.

 No.14161

common lisp or racket
>>14155
these can also be useful to learn, if only to quickly hack together some functions or whatnot

 No.14187

I'm using this, seems decent enough
https://programming-22.mooc.fi/

 No.14188

>>14187
No syllabus and communication through fbi.gov, idk what to think

 No.14189

>>14146
Don't worry shay, I've read your posts and you're smarter than some of my co-workers. we are programmers

 No.14190

>>14189
do your co-workers need assistance operating a computer for their job

 No.14191

>>14190
Well, they probably needed help at one point, but most of my coworkers have been using computers for at least 10 if not 20+ years.

 No.14195

haxe

transpiles to mutliple langs, so basically is cross platform pretty easily

 No.14243

C/C++ will always be in demand but they're low level and legacy which means a pain to work with, extremely efficient in the hands of a capable programmer and extremely dangerous for incompetent programmers (unmanaged memory means security vulns, hard crashes, etc). due to this there aren't many entry level C++ jobs

Rust is as efficient and accomplishes the same goals as C/C++ while also being safer but it has a ways to go to catch up in terms of market share, good pick if you want to do high performance low level work and are more forward-thinking

Python is the most readily applicable to real world problems (specifically scientific applications, neural nets and deep learning) but is literally ~100x slower than C++ or Rust. however runtime performance doesn't matter as much as developer productivity in many cases (machine learning is definitely one) and a lot of modern Python involves offloading massive amounts of work from CPU to GPU with CUDA or OpenCL so Python being slow isn't the bottleneck either way

C# is mostly for video games these days, you can get a job using Unity fairly easily

 No.14244

>>14243
>Rust is as efficient and accomplishes the same goals as C/C++
No. Many developers report unusually slow buildtimes of their software (https://blog.mozilla.org/nnethercote/2016/10/14/how-to-speed-up-the-rust-compiler/ https://raphlinus.github.io/rust/2019/08/21/rust-bloat.html), which shows the system requirements for rustc to effectively be a desktop or workstation. This is a large regression in self-hosting of compilers.

I would also not disregard the impact of functional languages on the programming industry. Apart from Erlang/Elixir, R, F# and OCaml, many companies continue to use Common Lisp (https://common-lisp.net/lisp-companies). Previous discussion has shown the term to generally refer to languages enabling functional programming (pure functions) and allowing for a higher level of abstraction than both OOP and scripting (first-class functions, map/reduce, etc.).

 No.14245

>>14244
Ehh, buildtimes don't matter as much as runtime. They can slow down production a little bit, when we talk about how fast as language is we mean execution time.

 No.14246

>>14245
Buildtimes may now matter for software distributers, yet the trend of pushing Rust components further down the software stack severely impairs the ability to self-host on resource constrained systems.
The Tor Project intends to rewrite Tor in Rust. If rustc doesn't get several orders of magnitude faster during the next years, many self-hosted onion services on source-based OSs will probably experience a DOS during every recompilation of the "improved" tor or take longer than the compilation of multiple gccs when appropriately niced. This might eventually befall even major OS components.

 No.14274

>>14161
Recommend Racket more than cl but both really good

 No.14275

>>14244
Except OOP languages now all have functional features. Half of modern java programming is lambdas and chaining, esp. in web programming. Objects are basically just dumb storage for a million things that look like .map.reduce((x)->blahblahblah).whatever etc.

 No.14278

Whats so bad about scala?

 No.14279

>>14278
Did anyone say scala was bad?

 No.14280

>>14275
Non-trivial functional programming in java is a PITA:
No JVM support for lambdas can mitigate the fact, that they are declared as if they were Objects. Every lambda needs to be casted to a predefined interface. Map/reduce don't process simple data types, but opaque Stream Objects, which you need to initialize from a Collection, then .collect() again and explicitly need to be allocate each time.
I imagine users of large library interfaces mostly circumvent these problems.

 No.14281

C# more or less will make you a wincuck.

C++ is based, just make sure to learn "modern" C++ if you do it. Old-school C++ is horrible in comparison, and a fairly large reason why people give the language a bad rap.

You should go into programming with the goal of having fun. If direct results are what drive you, python will be more fun. If you like to sit and mess with puzzles, i.e. the act of programming in and of itself sounds fun, I'd recommend C++.

 No.14284

>yfw CYBERSYN 2.0 is in COBAL

 No.14286

>>14280
thats a consequence of the fact that lambdas were bolted on to java and not part of the core language design. lambdas are declared as objects because everything in Java that isn't a primitive is an object.
>Every lambda needs to be casted to a predefined interface.
The default java functional interfaces cover the vast majority of use cases.

I'll admit its not as clean as a FP language, but considering all the other benefits of ease of use/learning, librarys, ecosystem, etc. Why not use slightly inconvenient FP features of java/C# instead of making people learn haskell or something

 No.14290

>>14286
Learning haskell forces you to learn the FP mindset. You can use many of the concepts from it without having learnt the actual way of thinking about programs, which you risk doing if you learn it through java. That's why learning haskell is a good idea.

I haven't used haskell in any serious projects, but it has greatly influenced my code style in general, in ways I couldn't foresee.

 No.14297

Python is the best to start with because it's very beginner friendly.
There is a ton of resources for n00bs, and it can be useful to automate boring stuff like renaming a lot of files, for AI since most research is centered around it, or simply experimenting within an interpreter loop.
It's the second most popular language after JavaScript as of January 2022 [0], you cannot go wrong with it. It's shipped with most mainstream Linux distributions, in Debian-based distros like Ubuntu you can open a terminal, type "python3", hit Enter, and you can start programming right away, and do useful stuff with it.

C++ is an incredibly versatile language, but also an incredibly complex one. I wouldn't recommend it for n00bs.
Sure, the language is better since 2011, whatever, but you should only need it in special cases – heavy math, video gaming, embedded programming, or real-time stuff with no garbage collector pauses, i.e. gotta go fast kind of stuff – that are beyond what a beginner should focus on in the first place.
I still recommend learning its ancestor, C, at some point if you are serious about learning programming, because it's an unavoidable language, used for the kernel code of most OS, and it's relatively simple, kinda like portable assembly. It's the fastest (and eco-friendliest [1]) language out there with the most extensive platform support. After this, you can start to understand the impetus for the creation of C++, which problems it solves.
Rust is a modern C++, seems more thoughtfully designed, the cargo toolchain seems comfy to use, it's worthwhile to learn it if you gotta go fast for whatever reason.

C# is Micro$$$oft's version of Java, basically: a garbage-collected language which is a good compromise between the speed (and typing) of C++ and the ease of use of Python.
It's mostly useful for developing web apps, video games with Unity, or native Windows apps.
It's a language with a good design for that kind of stuff, and not completely proprietary anymore with .NET Core, though I must admit that creating Windows GUIs with Visual Studio is very comfy.

Anyway, you can't go wrong with any of them, the most important thing as a beginner is to master control-flow (if/else statements), iteration (while/for), structuring a program into functions, with objects/structs, understanding the concept of scope, and so on, and I recommend Python for this because there will be less cruft in your way as a n00b. You can start exploring fancy stuff like functional programming with it later if you want to.

[0]: https://redmonk.com/sogrady/2022/03/28/language-rankings-1-22/
[1]: https://hackaday.com/2021/11/18/c-is-the-greenest-programming-language/

>>14154
This.

>>14156
Playing with DrRacket or Emacs and SBCL is definitely a worthwhile experience at an intermediate n00b level and beyond, but it's a kinda niche thing, it's harder to start learning how to program in Lisp/Scheme than in Python (unless you are learning it in an academic setting).
>inb4 muh SICP
Yeah, when you are an intermediate n00b, you should try to read that kind of stuff, but not when you are beginning from scratch.

>>14281
>C# more or less will make you a wincuck.
Not anymore if you use .NET Core.
>C++ is based
C++ is a sharp-edged tool that can be used to great ends, but can also blow your whole leg, as the saying goes. It has its uses.
>You should go into programming with the goal of having fun.
This 100%.
>If you like to sit and mess with puzzles, i.e. the act of programming in and of itself sounds fun, I'd recommend C++.
I would rather learn a fancy academic language like Haskell for this, which incorporates concepts that aren't in most mainstream programming languages.

t. here is my three-line long implementation of fizzbuzz in Python 3:
def fizzbuzz():
    f = lambda n: (("Fizz" if n % 3 == 0 else "") + ("Buzz" if n % 5 == 0 else "")) if n % 3 == 0 or n % 5 == 0 else n
    [print(f(n)) for n in range(1,101)]

 No.14298

File: 1648757156984.jpg (50.24 KB, 400x579, cover.jpg)

> t. here is my three-line long implementation of fizzbuzz in Python 3: >>14297

shamelessly stolen from: https://textboard.org/prog/22#t22p24

scheme@(guile-user)> (display ((lambda (rec xjoin empty pad n spec) ((lambda (xjoin) ((lambda (pad fb) ((lambda (cell) (xjoin n (lambda (k) (string-append (xjoin n (lambda (j) (cell (+ (* n k) j 1))) " ") "\n")) "")) (lambda (n) (pad (empty (fb n) n))))) (lambda (s) (if (>= (string-length s) pad) s (string-append (xjoin (- pad (string-length s)) (lambda (k) " ") "") s))) (lambda (n) (xjoin (vector-length spec) (lambda (k) (if (= (remainder n (car (vector-ref spec k))) 0) (cadr (vector-ref spec k)) "")) "")))) (lambda (n fun sep) (rec xjoin n fun sep "")))) (lambda (f . args) (apply f (cons f args))) (lambda (self n fun sep acc) (if (<= n 0) "" (if (= n 1) (string-append (fun 0) acc) (self self (- n 1) fun sep (string-append sep (fun (- n 1)) acc))))) (lambda (s n) (if (= (string-length s) 0) (number->string n) s)) 2 10 #((3 "F") (5 "B"))))
 1  2  F  4  B  F  7  8  F  B
11  F 13 14 FB 16 17  F 19  B
 F 22 23  F  B 26  F 28 29 FB
31 32  F 34  B  F 37 38  F  B
41  F 43 44 FB 46 47  F 49  B
 F 52 53  F  B 56  F 58 59 FB
61 62  F 64  B  F 67 68  F  B
71  F 73 74 FB 76 77  F 79  B
 F 82 83  F  B 86  F 88 89 FB
91 92  F 94  B  F 97 98  F  B
scheme@(guile-user)>


read SICP

 No.14299

>>14298
Are you a bot? This Guile thing has a thousand lambdas in it, and display the results as a 2D matrix, while I've used only one lambda and a sketchy list comprehension thing.
Btw I've found a way to make it fit in one line
python3 -c '[print((lambda n: "FizzBuzz" if n % 15 == 0 else "Fizz" if n % 3 == 0 else "Buzz" if n % 5 == 0 else n)(n)) for n in range(1,101)]'

 No.14307

>>14290
>Learning haskell forces you to learn the FP mindset.
you could say the same of jvm langs like clojure

 No.14310

>>14307
Clojure is better but still not at haskell's level. Just learn you a haskell, man: http://www.learnyouahaskell.com/

 No.14311

>>14310
I already learned haskell and clojure and scala and wrote several small programs in it for uni and graduate school. Not a fan. Clojure is the only one I can remotely stand, but its too obscure for most people

 No.14312

>>14145
>so i can work in OGAS or CYBERSYN 2.0 as Cockshott's successore.
Learn Java or Julia since that's what he writes in, check github:
https://github.com/wc22m?tab=repositories
Julia is pretty similar to python

 No.14313

so do functional programming ideologues have no real hobbies (or careers??) outside of posting on imageboards?

every single thread on every chan that mentions programming is immediately clogged with incomprehensible shit about scheme and lisp and sicp memes and in my 7 years across both startups and FAANG-tier firms I've literally never worked with anyone who has ever used any of these languages to ship a product, or even seen an interesting github repo :/

 No.14314

>>14313 (doublepost)
extremely similar energy to people who spend all day on /g/ posting about their window tiling setups and their vim configs, these peoples' entire identity revolves around supposedly being 10x productivity hackers yet I've *literally never* met a single one of them at a real job and *literally never* seen one of them posting about an interesting program they wrote, closest they ever get to that is jacking themselves off over esolang Project Euler solutions

 No.14315

>>14313
>do functional programming ideologues have no real hobbies (or careers??)
I will graduate this year and feel compelled to become fluent in lisp, because analogous to marxism it has a rich history (http://www-formal.stanford.edu/jmc/lisp20th/node2.html https://web.archive.org/web/20160131050945/http://www.alu.org/alu/res-lisp-history.clp) and the few people openly talking about using it seem very knowledgeable (http://www.loper-os.org/?p=562). FP is simply the most natural paradigm in languages with as few barriers as lisps.
>I've literally never worked with anyone who has ever used any of these languages to ship a product, or even seen an interesting github repo :/
Is the large number of quicklisp packages the product of a few dedicated hobbyist programmers or the continuation of a thriving language ecosystem? Judge yourself https://github.com/quicklisp/quicklisp-projects

 No.14316

File: 1649062377193.gif (96.82 KB, 500x500, grill.gif)

>>14314
>>14313
basically, yes. Maybe a few niche companies used functional languages in the 2010s at the peak of FP hype but nowdays they are mostly shifting to golang/rust as the new meme hotness. Scala does have a little more usage than the other langs. There's a team at my work that uses scala and allegedly twitter uses it too. But overall most actual programming out there is using java/c# or PhP/Python.

/g/'s have a big problem with being filled with autistic linux powerusers/hobbyists who take their advice from /g/ memes and essays by Paul Graham and Richard Stallaman rather than any formal education in computing let alone experience being a developer in industry.

pretty well covered in this post here:
https://cabalchan.org/entry?entryid=293

 No.14317

>>14313
>start-ups and github
what a great sample

 No.14320

>>14317
>startups and FAANG-tier firms
fixed for you, learn to read :) also "github" was obviously meant as a stand-in for any online SVN repo host, I know you dorks probably all left for gitlab when github got too le woke and removed all the gamergate repos

 No.14324

>>14320
learn to write :)

 No.14325

>>14316
>pretty well covered in this post here:
>https://cabalchan.org/entry?entryid=293
schizo ramblings

 No.14326

>>14320
>I know you dorks probably all left for gitlab when github got too le woke and removed all the gamergate repos
People left github because they were bought by microsoft and microsoft sells software for tracking down illegal immigrants to ice.

 No.14328

>>14325
explain whats wrong exactly with that?

 No.14329

>>14328
they already did

 No.14332

>>14328
>explain whats wrong exactly with that?
He's complaining about what people supposedly said with zero actual quotes, links or screenshots. It's all just a big strawman he is beating up to prove how smart he is. This level detachedness from reality can be called "schizo".

Also the ree'ing about lisp is just plain ignorant. Of course an anime themed community is going to meme about a programming language that was in the anime.

 No.14333

>>14320
Yeah it was the wokeism and not the fact that it is slowly becoming part of the american state apparatus.
>>14316
Really depends what work you're doing.
There's no reason to use MySQL over say postgresql yet companies do it all the time. There's no reason to use NoSql databaes for schemafull backends for web APIs yet there is an abundance of companies doing it all the time.
<insert "but is it webscale" meme

Most companies now are getting in on "microservices". They are a double edged sword, but that's another conversation.

Point is, most backends are WebAPIs nowadays, with either RESTful or GraphQL endpoints, using JSON of course.

There's little reason to use Java over Kotlin. Kotlin is simply a better Java. And why not go a tiny step forward with Scala. Kotlin has great intellij integration. If your company can pay for it, why not?

Lots of companies use these languages. Especially big ones.

 No.14337

Everyibe here is giving very in-depth advice which doesn't really help in terms of a complete beginner. Fighting over c vs c++ vs c# is like debating which is the best pose to throw a ball in basketball.

So here is my advice. Don't go Python. Its basically a language of which the main goal is easy way for non-It scientists or business people or mathematicians to do math problems without learning how to make math algorythms in code themselves.

Don't touch C with a twelwe foot pole as it will filter you the moment you try to pass anything more than a simple value to a function or whenever you try parsing any realistic user input.

C++ is C, but ++ (because its better joke). In other words it will filter you way less, and even when it does its easier to find a one-size-fits-all solution that will help you avoid the filtering in the future.

C# or .NET will literally never filter you over syntax, especially if you use Visual Studio, as it will give you accurate autocorrects. All of that initial layer of difficulty of learning a language like C or C++ will be mostly gone, and all you will need to learn after basic syntax is just going to be the ways in which you use the inbuilt tools of C# (which is good, because C would demand you to build these tools yourself or to get them from a neckbeard forum that fails to document them for brainlets like you or me).

In short:
C is like if someone gave you an infinate amount of lego parts, but they are all the small thin planks with nobs on top.

C++ is the same, but now you get access to all lego parts.

C# just gives you every single lego constructor set with instructions included.

Python is Duplo

Hope this helps. Take it from me, an absolute joke of a programer bungling and faking his way through an SE degree.

 No.14344

File: 1649404050657.png (222.65 KB, 500x375, a cute.png)

Hey, everyone itt

Thanks for the helpful insights.

I'm crap at maths and not interested much in programming, but this all makes it seem possible to learn at least a bit.

Thanks :)

 No.14345

>>14344
Math isn't *that* bad , everyone could atleast grok calculus 1 with some effort

 No.14349

>>14324
>>14325
>>14332
in case it wasn't clear, teenagers like you are the reason adults with successful careers stop posting on sites like these :)

 No.14358

File: 1649494502897.png (367.02 KB, 1024x480, cyberpunkcorpboss.png)

>>14333
>There's little reason to use Java over Kotlin. Kotlin is simply a better Java. And why not go a tiny step forward with Scala.
<it's, why don't people switch to my niche functional language post #102983021312
I swear you people don't listen. Writing small programs like chans or toy hackerrank/LC solutions is NOT THE SAME as writing enterprise grade software. There are other considerations. The only major company which has successfully used Scala, AFAIK is twitter. Other, non tech companies are way more conservative in language choice for reasons which are rational and apparent if anyone even stops to think about it for a second. My company is currently doing a rewrite in Scala from Java that has lasted like 7 years and they still aren't even close to being done - ill let you know if it changes. Software in the real is not just solving cute little maths problems in N lines of code, it usually involves a ton of messy IO, use of third party libraries, and all kinds of untold levels of unforeseen little things that pop up that have nothing to do with whether you can implement a dynamic programming graph algorithm in a few less lines of code.

1. Scala is too complicated for most bean counting corporate engineers to understand, plus you can easily find an engineer with 20+ years of java experience meanwhile Scala wasn't even invented till 2004 and not common until the 2010s. So they command a wage premium that corpos aren't willing to pay when you can find a OOAD/design pattern expert java engineer for 100k$ less a year, meanwhile you'd have to pay an experienced scala/clojure/haskell engineer 170/180k$+ a year even in buttfuck nowhere, Indiana, where the average worker makes 40k, let alone Silicon Valley.

2. Java has a major silicon valley player backing it (Oracle), meanwhile Scala is only back by small companies like lightbend so there are less people to yell at when something goes wrong, higher chance of finding some reason to fire the manager if thing go south. Its too edgy as a choice, meanwhile no one gets fired for using Java/C#. Kotlin is backed by Intellij but the only reason its getting bigger is because google is hyping it to own oracle. Functional languages are often seen as academic and not for industry (other than edgy startups and twitter).

3. Java has a standardized libraries for distributed computing, web services, message queues, and other enterprise needs (JEE/Jakarta EE). Java has hooks in nearly every popular library/tool written, plus documentation and tutorials covering every possible aspect of it. These other languages have nothing comparable to this and often make you write shit yourself. Think of how much work goes to make a golang or scala/akka app do shit like user authentication.

4. inb4 "JEE is outdated because muh microservices", there are modern microservices frameworks like eclipse microprofile, which leverage huge parts of JEE with standardized tools like API documentation and even better (imo) distributed fault tolerance than spring cloud, ever since Netflix officially deprecated Hystrix and forced spring users to switch to Resilience4j.

4. Java is frequently taught to undergraduate CS majors, often as the primary language, or something extremely similar (C++/C#). Functional and object-functional languages like Scala/Haskell/Lisp, etc. are either briefly taught in a programming language theory or functional programming course, or sometimes not at all. As a result the average CS grad comes out of school with a ton of experience writing OOP programs and thinking in that paradigm and less than a few months as a FP programmer.

5. Most older engineers and even newer grads are more familiar with OOP/OOAD and usually Java/C# than FP and therefore leveraging their existing knowledge and skillbase is more useful than forcing them to start from scratch in a whole new language & paradigm.

6. Companies build systems that last years and sometimes decades. Given that they go with the safe choice of an officially Oracle supported-language as they think Oracle will be around in 15 years and xyz language corp. may or may not. FFS Martin Odersky is 63, even HE may not be alive in 15/20 years, let alone his language. Most professional developers have had an experience where they show up to a job as a junior and are assigned to work on code thats 5, 10, or even 20+ years old, sometimes even integrated with legacy mainframes from the 70s/80s and before.

7. “Verbosity” - Common sense tells you that verbosity is bad because it slows you down from writing code. This is actually wrong, first of all this is not like the keyboard in movies where some hacker or Gilfoyle from "silicon valley" type furiously on their keyboard to show how much more productive they're being. Even if FP languages technically take less keystrokes they also have more mental overhead and abstraction where the programmer has to think longer about what they’re going to write, before they write it. The productivity is probably a wash. Quoting from the imageboard thread (emphasis mine):
>There's also the readability argument. The fact is that people esp. hobbyist coders love to bring up terseness as an advantage (ohh, look at le quicksort in 3 lines of code in haskell or whatever) and verboseness as a disadvantage (muh boilerplate). The truth is that verboseness is a feature not a bug, the question of whether a language is good is not whether its easier to write but whether its easier to READ, and can be read and easily understood by a large team of people with varying levels of skill, ability, and experience. That's the difference between coding as an engineer/architect and coding as a hacker. The point is the vast majority of time spent on a program will be =READING the code not writing it and verboseness to a certain extent makes it more self documenting. If terseness was the end all be all then obsurantist Perl one liners with long ass regexps written by a sysadmin 10 years ago and never understood by anyone since would be the height of programming.

There's usually no rational business case for abandoning that intellectual capital, experiences, organizational learning, and built code just because you learned you can do a cute trick in xyz lang about implementing quicksort in 5 lines.

Functional languages make bigbrain people more productive, but they bring average and mediocre devs to a standstill since it's incomprehensible to them and their productivity goes way down. Java/C# make it possible for a manager and some senior devs/architects to wrangle a horde of mediocre engineers to make decent software. Personally, I'd take a team player who follows best practices and good processes over le hacker/rockstar any day. In a startup the calculus may be slightly different and there may be a case to be edgy with tech stack choice including languages. But in enterprise, there really is no reason to when Java/C# already works. P.S. both languages have the same capabilities, they're both turing complete and any opinion about Kotlin/Scala being better than java is therefore just subjective. There's nothing Kotlin does better other than eliminate some boilerplate which only makes sense when you compare the base languages but most modern java frameworks like Spring have a bunch of annotations and codegen-like shit (ex: lombok) and heavy use of lambdas to where it's no longer boilerplatey.

the only reason Google is even hyping kotlin is to get out of their legal issues with Oracle over Android development. Oh, and null pointers, because checking if object==null is so hard now.

Look, I get it guys: Java/C# are BORING AS FUCK. They aren't a joy to write, and for most of us, they're WORK. Which I suspect is the main beef against it, no one wants to bring their day job home, the rest of this bullshit is nothing but puffery and rationalizations. But they are workhorses getting the job done and since Java's popularity isn't waning anytime soon, you can expect that it will be here for years to come. Java is the Cobol of the 21st century and it ain’t goin anywhere. So all of the shit of Kotlin replacing java or whatever, let alone Scala (or Clojure, or Haskell), is coping and seething.

 No.14361

How do I learn program good

I am comp sci undergrad close to transfer to university

Need to get gid

I program assembly, C/C++, Java, SML but only little bit

>>14358
How do I learn Java good

 No.14362

>>14361
just do it a lot

 No.14363

>>14361
you should read books on java and write practical projects in it.
Start with the two java cert books. No need to actually take the certification just read the material in there for basic java. Bloch's book is a classic as well. These are about java 8 so be sure to read a few more modern features documentation on java 11+ like lambda expressions, streams and functional interfaces.

 No.14364

>>14363
Second part, to get jobs requires knowledge of algorithms/data structures and system design. Here's a few books on that. Once you understand DS/A generically try reading and grinding the problems in EPI, as well as websites like leetcode and hackerrank. Both books here are java based. Also learn DESIGN PATTERNS which will come up in job interviews as well (book for that as well).

 No.14365

With regards to system design, what the industry refers to as "system design" is really a combination of software architecture, cloud architecture/systems deployment. usually system design questions are asked more of mid and senior engineers than juniors but there still might be some questions of junior devs. This link is pretty good for self studying:
https://github.com/donnemartin/system-design-primer

that should probably be good enough for a junior developer. There are way more questions that could be asked down the line about concurrency, plus more advanced architecture/system design shit, but you probably won't encounter it.

 No.14366

I'd suggest learning SPRING BOOT and writing a server side app of your choosing to start. Maybe make it part of a dev portfolio or something. IF you get a chance to choose a tech stack for a school project try Spring Boot that way you're forced to learn it to make the project. It's relatively easy so don't worry.

 No.14367

>>14349
real successful adults pull themselves up by the bootstraps and accept work for ICE and the Pentagon

 No.14376

>These are about java 8 so be sure to read a few more modern features documentation on java 11+ like lambda expressions, streams and functional interfaces.

https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html#package.description

 No.16731

If you are an absolute novice with zero experience spend a couple of months learning Javascript , along with CSS and HTML . This will teach you the basics of programming .
Geeksforgeeks and W3Schools will be useful resources for this phase of your education.

Then move on and spend a year or two mastering C , C++ & C# to learn the principles of Object Oriented Programming . Refer to the books attached to this post for guidance.

During this time experiment with languages like Python & Rust to gain a deeper understanding of the underlying structures needed for programming.

 No.16732

"how to plan an economy"
I have several years of coursework in computer fields at a college level.
Lets separate this problem.
1. Programming Problems: You need a lot of things to run very fast which means C++.
2. Economic problems: If it was trivial, more would do it. Do you feel you know enough about money, resource allocation, and supply chains to describe this, and how they would interact with the world.
3. AI Problems: Even with several years of computer science, I can't tell you anything about Tensorflow.

Problems that need solving for the left that are easy:
1. Browse r/SelfHosted and self host some things not over the Internet for only people on your local WiFi.
2. Operate CNC and 3D Pritners with code that already exists.

What I think:
1. Is this a joke or fiction I don't understand
2. Are you trying to make simple code that runs on a tiny CPU that only manages 10 resources across 50 nodes or are you going for full hell trying to simulate a whole country?
3. People think about going into video game design because they love games. They find out games are hard and require teams of hundreds to make mediocre games. This is also the case with computer science. They start out thinking they will make something great. Either they make a self contained C++ code that does something small for themselves, they contribute to an open source project, they dish out the money from the people who know what they are doing, or they give up and only code if they get paid.

TLDR: Economics is hard. Programs of any size are slow so you need C++. UI design is hard unless it is simple push button do something no menus. You are hitting problems above your skill level. No disrespect.

Ending note of optimism: Command Line Interface code that tracks 5 resources across 20 nodes with 4 nodes in a single category for 5 types of categories is something you could do if you can write code that parses arrays and get good at handling strings. UI's are hell. AI is hell.

 No.16733

>Javascript , along with CSS and HTML
lmao. This was my introduction to programming and it was a horrible experience. Javascript and the dom are a blight on computing.
Novices should learn any language with a comprehensive beginner's guide that interests them. People have posted tutorials for python, scheme and haskell in this thread. Rust, ruby, go, ada, elixir and forth also have very good documentation.
https://doc.rust-lang.org/book/
https://pine.fm/LearnToProgram/
https://go.dev/tour/welcome/1
https://en.wikibooks.org/wiki/Ada_Programming
https://joyofelixir.com/
http://www.forth.com/starting-forth/index.html


Unique IPs: 26

[Return][Go to top] [Catalog] | [Home][Post a Reply]
Delete Post [ ]
[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / edu / hobby / tech / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / wiki / git ] [ GET / ref / marx / booru / zine ]