I'm trying to learn how to code in C# and feel a bit overwhelmed. Anyone here, fan or Amplidude, have any advice for me?
I have so much love and passion for 4X that I should make one some day. Can someone please offer some suggestions?
Also, I understand that this is off-topic, but I'm posting it here for exposure to the Amplidudes and will happily move it to the OT section, if need be.
I began learning C and Java in highschool through various projects and programs I was in. Since then ive coded in VBA, C++, Python, Matlab and various other languages.
(Had the most issues with Python).
The biggest thing is just practice.
Find code examples that you can digest (and learn what they did) and google any questions you have (instead of assuming it cant be done).
Start with something extremely basic and slowly add on to it. Pretty soon you will be able to apply what you've learned in a different situation.
Once you've learned one language it is pretty easy to move to another because most are pretty similar.
It’s like learning a foreign language. You have to understand the basic vocabulary first and then some simple syntax rules.
C# is quite easy on the syntax and vocabulary I think. There is not a lot of word to know to make your first “Hello World”.
After that you should be able to “read” some code. And every time you encounter you don't know, you can google it to find the “definition”.
-> Second knowing what the extended vocabulary contains.
For that, one thing and only one: Do stuff. Start small like they already told you. Then build over that. Try to finish what you start.
Try to access files, write xml, display something in the console, get something from the console, displaying some interface, etc. The more the better!
When you are depressed, try to read some old code. It can show you how much you have progressed.
Define some coding rules is a good thing too, but not mandatory. You can use some predefined one like this: https://stylecop.codeplex.com/
-> Last thing is: learn OOD (or object oriented design)
Some will say that OOD is not the only way, but, for me, it's the easiest one when you want to build some big project and being able to keep a track of what part do what and where you can expand and why.
But this will take you an awful lot of time to master... And even senior software architect learn something every day...
Try to understand UML and when/why it is important. Do not over design, but knowing where you want to go and why is always an asset, even if in the end you will certainly not code exactly what you have design.
And once again, start small, start simple, but finish it.
And in general:
-> Keep it as simple as possible. And when it's not possible, then still keep it simple.
-> Somebody has already solved your problem, if not, surely somebody has solved a problem which is really close to yours.
-> If possible, when you are stuck, try to discuss your problem/solution with someone else. Even if he does not understand, the reflexion needed to summarize your thoughs and express them will most likely point to a solution or a better approach.
-> Be proud. Whatever you do, whatever time you have spent!!!
By the way, I didn't know Microsoft Virtual Academy and it seams quite a good way to start. Thanks for sharing ^^
For me it started with passion for the computer games. I wanted to write my own. I soon realize that its not that simple but passion remained. I'm now a Javascript programmer ... not much to do with gaming.. but who know maybe I will someday finally start building some HTML5 game. As for how I stated learning to program. The very basic started in school. We got Logo lessons back in Primary School . In secondary school we got Turbo Pascal I liked it and was quite good at it at first but then other things came into my interest and I fought I would become a chemist. After one year on university I finally came to my senses and went to study computer science ( got Bachelor’s degree ). They where teaching C then C++ then Java and some C# - not to mention HTML - but I knew it well enough before I went to university. Beside pure programming languages lessons there where lessons on algorithms, databases and stuff - things You should at lest be aware of. I was attending my lectures, reading programming manuals and coding - lots of coding. If you want to learn how to program You must code a lot. Start from simple hello world programs and add new elements step by step. Start with an online tutorial then grab some book, them back online to start discovering all the little details.
There are a lot of different programming languages out there each having it pros and cons. Thankfully lots of them are also similar to one another. So just pick anyone. After some time - and a few programming languages - learning a new language will not be a problem for you. What will become important is what tools,libraries or frameworks you should know or learn. Search the internet, join some Facebook groups, forums, StackOverflow...
I've always adored Amplitude's UI's and menus. Always functional, minimalist, responsive, and efficient with little to no baggage that interferes with immersion or gameplay, while remaining sleek and beautiful!
That advice is really sweet of you hehe <3
I'm just getting started myself, and it's daunting, but I'm fortunate enough to have a really good friend who is patient enough to work with me! haha!
There are some really good free resources out there too. I'm more of a loner myself, but, there are some subreddits completely devoted towards teaching others how to code which could be helpful to check out!
Thank you so much, everyone! Especially Thor for taking the time out of his busy day to respond! There is a lot of good information here so I'll be sure to digest it and get to it!
Who knows, maybe I'll be making my own 4X game in the next couple years
Man... I hated UML. Our teachers always wanted us to overdesign and overengineer everything.
We had to make exhaustive diagrams for every little thing in our applications (which were fairly simple), and so many pointless tests. It ended up breaking a lot of us.
They also insisted on separating things in different layers, which resulted in a ton of pulling data back and forth between the layers - which made applications much bigger and full of copy/paste code. >_>
Mansen wrote: Man... I hated UML. Our teachers always wanted us to overdesign and overengineer everything.
We had to make exhaustive diagrams for every little thing in our applications (which were fairly simple), and so many pointless tests. It ended up breaking a lot of us.
They also insisted on separating things in different layers, which resulted in a ton of pulling data back and forth between the layers - which made applications much bigger and full of copy/paste code. >_>
Well hard to tell but maybe it was in order to teach You this stuff.
As for layers, you actually should separate You app into layers - use MVC pattern or something similar.
MODDevildogFF
Unfallen Founder
Creator of the Unfallen concept. "To move freely, one must be deeply rooted."
MODDevildogFF
Unfallen Founder
44 200g2g ptsReport comment
Why do you report DevildogFF?
Are you sure you want to block DevildogFF ?
BlockCancelAre you sure you want to unblock DevildogFF ?
UnblockCancelCaotico09
Newcomer
Caotico09
Newcomer
100g2g ptsReport comment
Why do you report Caotico09?
Are you sure you want to block Caotico09 ?
BlockCancelAre you sure you want to unblock Caotico09 ?
UnblockCancelADMINDarkHerumor
Old Admin
This was my kingdom!
ADMINDarkHerumor
Old Admin
60 600g2g ptsReport comment
Why do you report DarkHerumor?
Are you sure you want to block DarkHerumor ?
BlockCancelAre you sure you want to unblock DarkHerumor ?
UnblockCancelMODDevildogFF
Unfallen Founder
Creator of the Unfallen concept. "To move freely, one must be deeply rooted."
MODDevildogFF
Unfallen Founder
44 200g2g ptsReport comment
Why do you report DevildogFF?
Are you sure you want to block DevildogFF ?
BlockCancelAre you sure you want to unblock DevildogFF ?
UnblockCancelDEVThorTillas
Dev
Florian - Lead programmer on Humankind
DEVThorTillas
Dev
30 200g2g ptsReport comment
Why do you report ThorTillas?
Are you sure you want to block ThorTillas ?
BlockCancelAre you sure you want to unblock ThorTillas ?
UnblockCancelluk6man
Newcomer
luk6man
Newcomer
18 300g2g ptsReport comment
Why do you report luk6man?
Are you sure you want to block luk6man ?
BlockCancelAre you sure you want to unblock luk6man ?
UnblockCancelRudest
Newcomer
Rudest
Newcomer
100g2g ptsReport comment
Why do you report Rudest?
Are you sure you want to block Rudest ?
BlockCancelAre you sure you want to unblock Rudest ?
UnblockCancelMODDevildogFF
Unfallen Founder
Creator of the Unfallen concept. "To move freely, one must be deeply rooted."
MODDevildogFF
Unfallen Founder
44 200g2g ptsReport comment
Why do you report DevildogFF?
Are you sure you want to block DevildogFF ?
BlockCancelAre you sure you want to unblock DevildogFF ?
UnblockCancelMansen
Enthusiast
Mansen
Enthusiast
19 200g2g ptsReport comment
Why do you report Mansen?
Are you sure you want to block Mansen ?
BlockCancelAre you sure you want to unblock Mansen ?
UnblockCancelluk6man
Newcomer
luk6man
Newcomer
18 300g2g ptsReport comment
Why do you report luk6man?
Are you sure you want to block luk6man ?
BlockCancelAre you sure you want to unblock luk6man ?
UnblockCancelMansen
Enthusiast
Mansen
Enthusiast
19 200g2g ptsReport comment
Why do you report Mansen?
Are you sure you want to block Mansen ?
BlockCancelAre you sure you want to unblock Mansen ?
UnblockCancel