Is C++ and C# easy to learn?

is C++ and C# easy to learn?

Attached: 07EC1BDB-6914-4AE2-98FC-60A12A9BEB02.jpg (2000x3000, 581K)

Other urls found in this thread:

github.com/dieforfree/edsebooks/blob/master/ebooks/Design Patterns, Elements of Reusable Object-Oriented Software.pdf
github.com/GNOME/gtk/tree/master/gtk
ccbv.co.uk/projects/Django/2.0/django.views.generic.edit/UpdateView/
stackoverflow.com/questions/772041/using-c-library-in-c-sharp
github.com/thug1src/thug
twitter.com/SFWRedditGifs

Read "The C programming language" by Brian Kernighan and Dennis Ritchie, and start making simple C programs to learn the language.
Then you can skip through the tutorial at cplusplus.com for C++ specific things.

no and depends.

>C++
hell no, it's fucking huge
>C#
yes, but you also need to know the infrastructure under it to be good, so again: hell no

Yes!
Learn C++, then it's just a walk in the park learning C#.
I just hope you're using this power for the good of Mankind.

This is terrible advice

Just don't learn Java.
It's easy, but don't.
See, it was all hype a few decades ago, and shitty programmers went out and developed a shitton of insane libraries to overthrow the very principle of Java.
My brother is stuck in there, and will be for the foreseeable future.
Imagine debugging stuff that works around the language and isn't up to date.
If an interviewer asks you if you know Java, just say NO. You'll be maintaining this whole mess for your whole life.
Meanwhile, saying you know C stuff will get you new projects, because they're fed up with this Java shit.

easy to learn hard to master like every language that is not javascript

Neither language is "easy", but C# is definitely easier to learn (i.e. get something done) because it has a much more helpful and streamlined standard library and is designed to make it harder to do things wrong.

what is javascript then? hard to learn and hard to master?

Don't be stupid. It's great advice because the year is still 1986.

Totally agreed, just learn modern pl like javascript and don't leave your parents' basement.

piss easy to learn and piss easy to master.
You can write professional-grade programs within 2 weeks without prior knowledge.

This is awful NEET ridden advice.
If you have a choice learn C# first, that'll force you to think OOP. My question to you is what do you want to do? That determines a lot.

Mandatory to learn, hard to like.

Honestly, I wouldn't waste your time with C++. There may be some supporters but I've seen a larger extent of detractors. C# is great for entry level and continued development. Obviously I am biased since I am a .NET developer, but in school I used Java, C++, and Python and Python was the only other language I was REALLY impressed with. I was intrigued by how low level you can get with C++ but you can get even lower level with C and the general consensus is people prefer C because it's not hella bloated with shit (though C# kind of has the problem as well). Another thing of not is C++ is a superset syntactically of C but is a whole different paradigm since it's OOP. C# is also not at all like either. And both C++ and C# are guilty of exploiting the popularity of C in name alone.

In any case, I recommend C#. C++ if you really feel some need to do it, but consider looking into C if you really need pointers and lower level access to stuff.

*of note

you can also do C-like stuff with the unsafe keyword.

>piss easy to master
explain to me the difference between function declarations and arrow functions, const, let and var, what hoisting is and how it works, and what strict mode does, then tell me javascript is "easy to master" again with a straight face

>C
>new
>best style guide is from before my own birth

it's too hard
facists ruined it
use rust instead

OOF. You've never done professional development with JS I'm guessing.

inb4 WORKS ON MY MACHINE

Never said it was new.
But it just werks.

Not him but

>function declarations and arrow functions
Arrow functions don't need binding to fix stupid scope issues because the language is shit when used in classes

>const let var
Variable declarations. People only ever used to use var, then someone decided to pretend to be a real language, but instead of fixing var and undeclared variables, they left them in, so now you have four tools to shoot yourself in the foot with.

Use const wherever possible. If you absolutely have to, (and you probably don't), use let.

>hoisting
The dumbest part of the language. Anything declared is split into its declaration and assignment (if it was assigned), with the assignment being left where it was, and the declaration being "hoisted" to the top of the block. This means you can write code that uses a function before it's defined so long as it's defined in the same scope, which leads to interesting issues, because the language is the shit that you shit out after eating your own shit.

>strict mode
Makes the language switch from pure 100% deluxe mode into 99% shit mode for the containing block.

It's just a string that says "use strict", which looks nothing like anything that would change how the language works, but this is javascript and we all wear our jizz-soaked pants on our head here.

Now, excuse me while I, the venerable JS master, goes to bump the major version number on every library for the fifth time this month, because semver just means we can make breaking changes whenever we like.

>pure 100% deluxe mode
I meant "pure 100% deluxe shit mode".

It's very easy to learn, hard to master, like most languages. People are pretty shit at knowing callbacks, promises, type coercion, prtotype chain, etc.

C++ is the exception. Hard to learn, very hard to master. I've enjoy doing it professionally, and I feel like I've begun to master it. Guys who have been doing it for 7 or 15 years still have a hard time keeping some basic concepts in order. It's a big language with tons of features.

sauce?

The most important part is to having fun.
If you fuck around with the language and have fun, even asm is easy.
Now if you force yourself and follow boring tutorials and just drone and copy around and try to memorize shit like a student, even Basic is hard.

This is pretty much the sanest advice. Employers don't trust entry level programmers with languages that easily break, who could blame them. C# will cover any complex abstractions you'll find in C++, and C will force you into pointers and memory management. With this path you'll learn C++ without even realizing, but if you're looking for a job, you want C# out of those three. ESR said in his blog, you shouldn't code in C unless you have to.

>Book for c
>Tutorial for c++

Attached: 1516939200909.gif (399x369, 39K)

>force you to think OOP
no dont oop is a cargo cult

>Cargo cult
Misanthropic NEET detected

Why is there are general perception that OOP is a problem? Like, I want a sane argument not just a meme response.

It's a weird one. There aren't these vitriolic pushbacks against functional or event driven programming. I feel like it might be because OOP is the most prevalent paradigm, and a lot of frameworks are built around it, so there's plenty of orbiting ineptitude.

why are you trying to learn both at once? if you want purely OOP shit to write pajeet software i guess learn C# and it will be easier, C++ is alright but i'd just use C unless there's C++-specific libraries out there you have to use. The beauty of C++ though is you can use as many new features of it as you'd like

OH very very very important for you to do:

Read through github.com/dieforfree/edsebooks/blob/master/ebooks/Design Patterns, Elements of Reusable Object-Oriented Software.pdf whenever you can. I just discovered it 2 years into my career as a .NET developer and wish I had read it before in school. It gives strong insight into how modern OOP languages are structured. Not only that, compared to other obtuse textbooks, it's actually easy and fun to read by comparison.

Because it's not minimal and/or vintage and Jow Forums is full of hipsters. Procedural and functional languages force monolithic design which is great for performance, but terrible for reusability and simulation. C++ was actually designed for writing microkernels, ofc we know how that turned out.

>C++ was actually designed for
And enterprise level development, right? That's at least what my Data Structures prof told us when explain the purpose of header files and invariants.

I'd start learning C, if I were a beginner. You'll learn a lot more about systems that way.

Hating on OOP was a thing before it became big. I remember being a kid, with my Uncle explaining to me at a family gathering how stupid OOP is. His example was that he doesn't need to pretend a printer is an object, he just needs to know what data structures to call its functions with.

I didn't understand.

Where do your uncle stand on the issue now? If you work in industry, you'll appreciate how modular, debuggable, and readable most OOP work is.

I'm not sure if enterprise specifically, but i wouldnt be surprised. Microsoft Off ice is written in C++, good for speed, but the lower level data structures prevented porting to ARM. Guess why you never find Windows ARM devices? Java is for a fact an enterprise language, not to mention ALL oriented, it was written because Sun programmers were frustrated working with C++ apis.

I dunno. Lost contact with him maybe a decade ago, and apparently he quit software to drive lorries.

Living the dream.

*API oriented not ALL

>Microsoft Off ice is written in C++, good for speed, but the lower level data structures prevented porting to ARM
What are you talking about? We build arm with both MSVC and Clang (for Windows Phone/Tablet and Android).

C# yes incredibly easy
C++ no

Yeah that's the typical boomer dev response, "all I need is pod and functions" . Look what happens when th e libraries add up, ugly boiler plates. Take a look at GTK, perfect example of C++ denial
github.com/GNOME/gtk/tree/master/gtk
They use comments to label private parameters, it's idiotic and increases loc.

I'm sorry, but what is loc?

Holy shit, is there a decent IDE that makes that shit easily navigable? I hate to be a developer on that code base in the state it's currently organized in.

Why are you arguing with me? This was a monologue from my Uncle to me as a child.

Also as a sidenote, try to think for yourself sometimes. "Boomer" isn't a cutting description of a person.

Lines of code
Eclipse is great for managing large libraries, honestly if ask them.
I'm not arguing with you, and I'm sorry if I came off that way. I guess boomer is pretty offensive, no one wants to be pigeon holes into a generation, so I'm sorry for that. My point was, a lot of older developers, including many professors of mine really do not like C++. They are it as a complex behemoth of object models and general complexity. A lot of programmers opinions like Linus Torvalds, JWZ, and RMS are severely dated.

>I guess boomer is pretty offensive
Doesn't bother me at all, just didn't wanna start dealing with someone who (I thought) could only use the insult du jour as a retort.

>My point was, a lot of older developers, including many professors of mine really do not like C++
I seem to remember my Uncle was dealing in C at the time, so perhaps he saw OOP as an unnecessary abstraction?

>They [see] it as a complex behemoth of object models and general complexity
Well yeah you can certainly do that if you want, but to get something very powerful and usable, the inheritance trees aren't that tall, and you usually don't even have much method overriding.

ex: ccbv.co.uk/projects/Django/2.0/django.views.generic.edit/UpdateView/

>so perhaps he saw OOP as an unnecessary abstraction
Not the current guy you are reply to but that's why I asked . I was pretty sure he hated a dated outlook or didn't quite see it in action yet. Or how well he held up in the industry with that attitude. But considering he changed careers, I think I have my answer to that last one.

He ended up being a reasonably young Father, so his career switch could be attributable to that, too. Lorries are good money and low stress.

I don't have any real answers for you though, friend. Like I said, haven't spoken to him in years.

I honestly didn't mean any offense nor was I saying he took a worse career.

I didn't take any offence, nor did I imply one career over the other. I even said "Living the dream" during the initial reveal.

Just pointing out that while he may have changed careers due to not holding up in the face of changing tides, there may also have been other factors.

I've read that you can combine C++ and C# code.
Is that something that makes sense in reality? Having the general features of C# and using C++ for certain methods that could require efficiency?

Yeah probably. Here's twelve seconds of Googling I did on your behalf for free:

stackoverflow.com/questions/772041/using-c-library-in-c-sharp

This essentially discussing a syntax error a guy had. Not discussing if that is something you'd actually do in reality or if there's too many problems with it.

Twelve seconds is all I can afford my dude, you're on your own.

Looks like you can use C++ DLLs from C# with some fuckery though.

As for whether you'd actually do it in reality: Sure! Hell, Python does it (SWIG, C modules), why can't others?

>Looks like you can use C++ DLLs from C# with some fuckery though.
Literally two lines of code and there are even tools to automate pinvoke signature generation.

Well then that's good news for the user that was asking. I hope he finds the tools.

>If an interviewer asks you if you know Java, just say NO. You'll be maintaining this whole mess for your whole life.
...just say no to a stable job.

>Meanwhile, saying you know C stuff will get you new projects, because they're fed up with this Java shit.
this a joke

C isn’t really used outside of embedded systems or FOSS projects (OS). Even then C++ is running on a lot of higher powered embedded systems.

Have you used spring boot and java 8+?

Java has lambdas/functional style programming, less boiler plate, countless libraries, and is widely used for new projects (especially microservices).

It may be a little heavy for a start up, but in a big org with devops culture, CI/CD, and a well managed internal central repo, then java isn’t really beaten by anything.

Discounting any programming language is retarded. Are you still in school?

The boundary jump between the two is kinda slow, so you should profile before determining if moving to native code will help your performance.

I'm sorry what? A stable job? That's no fucking good if the job is shit. What kind of autistic retard only looks for stability in a job? You're going to be stressed the fuck out, depressed and with an extreme lack of free time because you wanted to cheap out on the effort of actually getting a desirable job.

Go learn COBOL and maintain legacy systems. A hell of a lot more job security and you aren't going to have to deal with library hell thanks to Pajeet Hakkunamakadda and your shitty code monkey predecessor.

Fucking retard.

thanks ill go out and hop between a thousand failed startups figuring out living check-to-check

It's not OOP that makes C++ bad, it's how horrible it is as a language, with shittons of useless functionalities. Objective C and Rust made it better, or even Java if you don't need dynamic memory allocation.

Do people legitimately use github to host pirated content?

github.com/thug1src/thug

Bonus: Search for 4-letter words (including "Sony").

agreed. best to leave the derka-derkas stewing in their own filth

>a fucking pooman

not worth you time if you don't have to/maybe