My C# Checklist

02/15/2012 23:37 xBlackPlagu3x#1
Lmao, a long time ago Bauss posted something on a thread of mine and it was a link to PasteBin, and on this specific paste was a C# Checklist. He said within, once I can do everything included without using references, I can call myself a C# Programmer.

Well here's what I got so far. xD

Code:
When you can put X in the following things and use them proper without any resources or help, then you can call yourself a C# programmer.

[X] Strings and chars
[X] Variables
[X] Booleans
[X] Basic Operators
[X] Switch cases and if statements
[X] Classes
[X] Type-conversion
[] Static and non-static objects
[] Public and private objects
[] Enumerators
[] Interfaces
[] Structs
[X] Methods, functions and properties
[] Generics
[X] Namespaces
[] Implicit operators
[X] Loops (While, for and foreach)
[X] Goto and labels
[X] Arrays                            
[] Hashtables, dictionaries and lists  
[] Multithreading, Delegates and events
[] Nullable types                      
[] Tennary                             
[] Unsafe coding and pointers          
[X] Math                                
[] LINQ                                
[] Lambda expression                   
[] Ciphers and simple cryptography     
[] Security, obfuscation and reflection
02/15/2012 23:57 pro4never#2
People will always argue what is/isn't a programmer but that list is definitely a nice start.

What's the point of this thread though <_<. You are wanting help with the unchecked things or simply posting how 'far' you've gotten so far? O_o
02/15/2012 23:58 Spirited#3
I'm not sure if I agree with that list. What's this aimed towards anyways? Your first private source? Or...
02/16/2012 00:00 pro4never#4
At second glance... no concepts of sockets (sync and async) and types of server models? (client/server, p2p, etc)
02/16/2012 00:21 xBlackPlagu3x#5
Im really sorry to admit, but the only point was to hopefully get amusement from people. This forum is so harsh sometimes, so I hoped to shed a little joy by having people laugh at my noobneds. I had no idea what section to put this in, but there should be an off topic section for this kinda stuff lol.
02/16/2012 02:17 _tao4229_#6
I need to look up what a static object is apparently.
02/16/2012 02:43 Lateralus#7
Quote:
Originally Posted by _tao4229_ View Post
I need to look up what a static object is apparently.
I'm sure he meant static objects in classes. It's perfectly valid in C#, though in general you should rarely be using the static keyword. If this was an attempt at sarcasm, hats off to you, sir - but next time make sure that what you're saying is valid instead of making yourself look ignorant. If this wasn't sarcasm, then god help you if you know how to analyze algorithms with Big-O notation as hinted at in your signature but don't know about this.


About the topic, this list is far from complete and badly organized and compiled. Rather than explicitly saying "public" and "private", you should just have "access modifiers", considering that there's also the keywords "internal" and "protected" and instead of lumping unrelated concepts together (Multithreading, Delegates and events), you should separate them, along with numerous other things... but I'm willing to bet Jacob didn't put ridiculous amounts of time in compiling this list. A lot of the concepts you don't have checked are extremely simple and can be learned in no time at all; not sure why you haven't learned them. An example is, I guess this is what was meant by "tennary", learning the ternary operation. There's only one in C#. The concept shouldn't be separated like this either, because there's honestly no point to using it except for conciseness (could be wrong, but I'm pretty sure it gets translated to the same instructions as an if-else block). Some of these things don't even apply to C#, as you can honestly be a great programmer in C# without knowing anything about unsafe concepts.

There's also levels of how well you know and can apply these things. Access modifiers are a perfect example of this. Most beginners know the basic usage of them, but don't fully understand when or why to use a different one; they'll just declare everything (classes, methods, fields) public which leads to a terrible design.

This really gives me a good idea about compiling a correct, improved checklist of what makes a C# beginner, intermediate, and expert programmer. I may make one and post it.
02/16/2012 03:18 _tao4229_#8
Quote:
Originally Posted by Lateralus View Post
I'm sure he meant static objects in classes. It's perfectly valid in C#, though in general you should rarely be using the static keyword. If this was an attempt at sarcasm, hats off to you, sir - but next time make sure that what you're saying is valid instead of making yourself look ignorant. If this wasn't sarcasm, then god help you if you know how to analyze algorithms with Big-O notation as hinted at in your signature but don't know about this.
A static field, then.
If he's learning, might as well learn the right terminology.
02/16/2012 03:25 Lateralus#9
Quote:
Originally Posted by _tao4229_ View Post
A static field, then.
If he's learning, might as well learn the right terminology.
Aha, good point, although you can also have static "objects" technically.

Code:
public static object someObject;
Not very applicable in a broad sense like this. I think I'm so corrupted by using the pumping lemma to prove languages aren't regular for this theory class that I'll find the smallest instance to prove someone wrong. My bad. It's no wonder why CMPS majors are so argumentative.
02/16/2012 05:39 xBlackPlagu3x#10
@Laterus: If it's not too much trouble, you should make an updated C# checklist. Obviously this one isn't either correct or just isn't fully detailed according to what you guys are saying? But yeah, it'd be nice to have a really good checklist to keep myself on record.
02/16/2012 08:52 I don't have a username#11
This is so fucking old.
02/23/2012 16:17 injection illusion logic#12
[X] Strings and chars
[X] Variables
[X] Booleans
[X] Basic Operators
[X] Switch cases and if statements
[X] Classes
[X] Type-conversion
[X] Static and non-static objects
[X] Public and private objects
[X] Enumerators
[X] Interfaces
[X] Structs
[X] Methods, functions and properties
[] Generics
[X] Namespaces
[X] Implicit operators
[X] Loops (While, for and foreach)
[X] Goto and labels
[X] Arrays
[X] Hashtables, dictionaries and lists
[X] Multithreading, Delegates and events
[X] Nullable types
[] Tennary
[X] Unsafe coding and pointers
[X] Math
[] LINQ
[] Lambda expression
[X] Ciphers and simple cryptography
[] Security, obfuscation and reflection
02/23/2012 19:55 donn#13
[X] Brain
[X] Google