[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]

So I want to finally teach myself how to C#/C++. Not just the

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: 18
Thread images: 2

File: 1471827809651.jpg (98KB, 600x450px) Image search: [Google]
1471827809651.jpg
98KB, 600x450px
So I want to finally teach myself how to C#/C++. Not just the basics, but to an advanced level at least. From personal experience, I know that most things you learn (be it a spoken language, math, physics, instruments, etc) tend to have a few core ideas (or "functions") that drive the entire topic, and learning them equals to learning 80% of what you'll ever apply in them, with the rest being close to irrelevant and memory-inefficient to bother learning (and should only be learned when/if the need arises to).

I'm pretty sure that it's the same with coding, and before I go balls deep into it, I'd like to have a map of priorities of what I should be learning and what to avoid to achieve the fastest route of mastering it.

>What are the most important advices you would give to yourself about C# or C++ if you could go back to the days of you learning it?

What to learn and read, general advice, habits, everything. Imagine I'm the uneducated You a few years ago. How do you help me become what you currently are, but faster?
>>
>>56202961

I thought this was a sector scan
>>
>>56203044
Lol, same here.
>>
>>56202961
It'll take a while, but try to learn the STL's best practices, use modern C++17 and learn all that new shit: threads, random, everything.
Try to get familiar with metaprogramming tooling, constexpr, templates all that jazz.

But it all comes naturally from doing projects and reflecting on how to make your own code better, so just do that: never stop learning new shit.
>>
Well, everyones use for C is different. I needed to learn a depreciated version of C first (I was a retro game emu dev) so I started with reading some old dev manuals. Then when I was older read K&R. And I used to analyze old programs.

Best advice, scour github and look for something you don't understand. then try to understand it. Look for cheat sheets online, you probably know lots already, so skim that and if something is off, spend an hour learning about that
>>
>>56203100
>>56203190
Thanks for the answers.

So basically it boils down to reverse-engineering already-written code?

If I took the path of reverse engineering every single program I was supposed to write, and instead tinker and modify it's already-optimal code and see what works and what improves it, would you consider that a more efficient way to learn than straight up writing beginner programs from scratch and evolve my techniques from there?
>>
>>56203269
Writing your own shit is not optional, but people tend to get anti-pattern habits when left to their own purposes.

Try to make your own shit but also keep an eye on what everyone else is making in case they have tricks you don't know yet.
>>
>>56203190
Actual programs are way more complicated than the average toy/exercise program though. Many source files, header files etc. It can get difficult to even get an overview of how the program is organized, let alone delve into how minute things are implemented.
>>
Look at projects on aosabook.org
These explain the architecture behind famous open source projects. Find one that looks interesting and dive into the source with the knowledge of how its laid out.
>>
How to stay motivated?
>>
File: ze6132Z.jpg (516KB, 1834x1440px) Image search: [Google]
ze6132Z.jpg
516KB, 1834x1440px
>>56202961
>teach myself advanced C#/C++

You will never learn C++ to an advanced level unless you work on some large projects in C++.
The language is too big for you to learn its ins and outs by writing toy programs.


>most things you learn have a few core ideas, with the rest being irrelevant
This is not really true for C++, unless you will only ever be reading and writing your own code.

Nobody seems to agree on what 80% of the language is appropriate to use, so if you want to know C++ to an "advanced level" (as you describe), then adopt the attitude that ALL of it is relevant.

>What to avoid
Windows.

>What to learn
Learn how to use Linux

Instead of trying to just "learn C++" you should learn software engineering. C++ is just a tool.

Learn STL
Learn boost
Learn Qt

>What to read
Ulrich Drepper 'what every programmer should know about memory'
Scott Meyers books on C++ are pretty good
FAQ lite and FQA lite pretty good reading, you'll know that you know C++ when you understand everything in those documents.


>Imagine I'm the uneducated You a few years ago.
Qt is a good place to start with learning C++.

Find a program and add an improvement that you (or someone else) wants.
Find a program and read its codebase until you understand how it works.
Write a program that somebody wants.
Re-write it because your first attempt sucked, but keep the good parts.
>>
>>56203849
Where's the place from the picture? Is that heavy illumination really necessary? The inhbitants of the huts basically have polar day all day with all the light.
>>
>>56203982
It's somewhere in China.
Reverse image search and you'll find threads about it.
>>
>>56202961
Replace that harddrive man.
>>
>>56203849
Checked your first book recommendation and its actually quite interesting, thanks for that post.

As for the Qt part, is it the standard utility used for GUI in C++? I see from their site that it's used in top companies, so that should mean something, right?

>Find a program and add an improvement that you (or someone else) wants.
>Find a program and read its codebase until you understand how it works.
So basically reaffirming the idea that I should reverse engineer rather than code from nothing. Got it, gonna read a bit from the book and will do exactly that for the next 5 or so hours.
>>
>>56202961
>C#/C++
C# and C++ are not even remotely similar, apart from syntax at a very basic level.
>>
>>56202961

C# and C++ are totally differnt languages. You can learn C# in a a much shorter amount of time..


C# is like a mixture of Java and Python, it's "serious" enough to do all the stuff you would do in Java, but it has somtimes a funky shortcut syntax, so you can also use it for scripting. It's "Java done right".

C++ is a really really really big langauge. It's more like 3 different langauges. And it's way easier to get decent in Java than in C++, because once you think you know C++ something completely different comes along. You can do OOP, but you can also do high level Assembly or using templates.. If you look into serveral big C++ projects the code will always look differnt.


Don't get me wrong, being a good C++ programmer is pretty cool, but it's a long and steep road.
>>
>>56206453
>It's more like 3 different langauges.

This is so true.
Thread posts: 18
Thread images: 2


[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.