What is the bare minimum you should know as a .NET developer ?
-
PIEBALDconsult wrote:
I've been using EDIT, CSC, and VBC to acquaint myself with VB.
After that, you could teach Dante a thing or two...
PIEBALDconsult wrote:
can't DEBUG assemble MASM?
I think so, but if not I have a copy of Turbo Assembler you can borrow. :)
"A Journey of a Thousand Rest Stops Begins with a Single Movement"
Ohh... don't get me started on that frickin' Dante!! Idiot stole my brother's computers... A-hole... :mad:
-
PIEBALDconsult wrote:
I've been using EDIT, CSC, and VBC to acquaint myself with VB.
After that, you could teach Dante a thing or two...
PIEBALDconsult wrote:
can't DEBUG assemble MASM?
I think so, but if not I have a copy of Turbo Assembler you can borrow. :)
"A Journey of a Thousand Rest Stops Begins with a Single Movement"
Roger Wright wrote:
Turbo Assembler
I used to, it came with Borland's higher-end C++ and Pascal as I recall. But I never used it.
-
Roger Wright wrote:
Turbo Assembler
I used to, it came with Borland's higher-end C++ and Pascal as I recall. But I never used it.
Neither did I, actually. Turbo Pascal 5.5 did everything I ever wanted a computer language to do, and more efficiently than anything since.
"A Journey of a Thousand Rest Stops Begins with a Single Movement"
-
Neither did I, actually. Turbo Pascal 5.5 did everything I ever wanted a computer language to do, and more efficiently than anything since.
"A Journey of a Thousand Rest Stops Begins with a Single Movement"
Chicks didn't seem to dig it as much though.
-
PIEBALDconsult wrote:
Learn how to develop without an IDE.
You really are a sadist, I would consider this, half the fun is finding out where all the bits are hidden in the IDE.
Never underestimate the power of human stupidity RAH
-
I am thinking what is the minimum should I know before I can call myself a "good" .NET developer ? This is what I am comfortable with so far : C# ASP.NET Javascript AJAX Control toolkit Telerik Rad Controls , iTextSharp library (Third party .NET controls) Some basic LINQ (I started using this in my current project).
I think the point here is being missed slightly - it's not just about the aspects of the language and the APIs you know, it's also about being able to use and understand good design principles, design patterns and all round decent OO. On top of that being able to understand the needs of the business for which you are developing and being able to challenge approaches where necessary is a big bonus. Obviously being able to code the thing is important but there is too much emphasis on the language itself.
-
No he was recommending the OP not to use the IDE - you are assuming PIEBALDconsult has done this (in which case I would use other words than masochist to describe him)
Never underestimate the power of human stupidity RAH
-
I am thinking what is the minimum should I know before I can call myself a "good" .NET developer ? This is what I am comfortable with so far : C# ASP.NET Javascript AJAX Control toolkit Telerik Rad Controls , iTextSharp library (Third party .NET controls) Some basic LINQ (I started using this in my current project).
-
Master C#. Learn how to develop without an IDE.
-
I am thinking what is the minimum should I know before I can call myself a "good" .NET developer ? This is what I am comfortable with so far : C# ASP.NET Javascript AJAX Control toolkit Telerik Rad Controls , iTextSharp library (Third party .NET controls) Some basic LINQ (I started using this in my current project).
To be a good ".NET" developer you need to be a good developer. The understanding of concepts on which software is built is far more important than understanding any particular tool. If you know the concept, you will learn a tool implementing that concept quickly. So what concepts should you know to be a "good developer"? Here are some ideas (and I'm sure I missed many):
- Algorithms and data structures. E.g. you should know, roughly, what kind of performance can you expect from Dictionary and why, how to implement Object.GetHashCode(), when to use List vs. LinkedList, how to construct and traverse a tree etc, etc...
- OOP concepts - when to use inheritance vs. composition, polymorphism, how to encapsulate properly, when to use "pure" OOP vs. generics etc...
- Functional concepts - side effects, functions as first-class citizens, eager vs. lazy execution...
- Database concepts - what are basic DB objects and how to put them together in a database, what are B-trees and what they can and cannot do, what each of the ACID letters really means...
- Multi-threaded concepts - threads vs. processes, types of locks, granularity and scalability, deterministic vs. non-deterministic execution (and bugs!), what is the cost of a context switch or acquiring a lock...
- Memory concepts - heap vs. garbage collection, what is virtual memory, caching and cache coherence, kinds of memory bugs...
- Network concepts - why do we have Ethernet, IP, TCP, HTTP, HTML etc. as separate layers? What each of them does? Why is HTTP sessionless and how do we achieve sessions? How can we scale? What should we do on server, what on the client and what on both?
- Code construction best practice - the importance of clear requirements, layered design, coding conventions, documentation, testing, version control, issue tracking...
- Etc, etc....
-
I am thinking what is the minimum should I know before I can call myself a "good" .NET developer ? This is what I am comfortable with so far : C# ASP.NET Javascript AJAX Control toolkit Telerik Rad Controls , iTextSharp library (Third party .NET controls) Some basic LINQ (I started using this in my current project).
To be a 'good' programmer, it's not about the tools. You have to know Design Patterns (and when to use or not use them), and SOLID principles, and even try things out in other languages. For all things SOLID, just do a search for 'Uncle Bob Martin', or 'SOLID Programming Principles'. The best book to get started is Agile Principles, Patterns and Practices in C# by Robert and Micah Martin. Learning Design Patterns + SOLID principles changed my programming for the better. There are many resources on the internet, that would be the best place to start, and the book I mention above is a must-have for C#. Find a good users group, and/or visit a Code Camp if there is one near you. Read Code. Lots of it. It's not about the tools. The tools don't make you a better programmer.
-
No he was recommending the OP not to use the IDE - you are assuming PIEBALDconsult has done this (in which case I would use other words than masochist to describe him)
Never underestimate the power of human stupidity RAH
Mycroft Holmes wrote:
recommending the OP not to use the IDE
No, I don't say "don't use it", I say "learn not to rely on it". Having the flexibility to use it or not use are is very beneficial. Like being able to walk to the gas station when you run out of gas, use candles when the power goes out, etc. There are craftsmen who use only hand tools, not because they have to, but because they choose to.
-
You never know. It's better to have it and not need it.... There was a place I was working (but not as a developer) where my boss asked if I could whip up a simple little inventory application. My only tools were CSC and EDIT (I can't stand NotePad X| ). No matter how impressive an application may be, if it was simply dragged-and-dropped and the developer didn't write any actual code, then it doesn't convey mastery of the language and framework. Just for the heck of it, a week or two ago I wrote a simple webbrowser app (WinForms) and only actually typed three or four assignments (with Intellisense's help even); Visual Studio did all the rest. It merely shows familiarity with the IDE. We old dogs who started out with no IDEs (until Turbo Pascal) have experience and understanding of what's going on in the background that the GUI-jocks can't comprehend. Learn from history, it'll make you a better practitioner*. * That's not directed at you, Christian, it's just a general statement.
PIEBALDconsult wrote:
No matter how impressive an application may be, if it was simply dragged-and-dropped and the developer didn't write any actual code, then it doesn't convey mastery of the language and framework.
I'd have to agree with the sentiment expressed. It's so easy these days to write an app in a development suite but not to have a clue about HOW it actually accomplishes what it does. This obviously makes it so much more difficult in bug tracking if there is no prior understanding of the underlying generated code.
There is only one satisfying way to boot a computer.
-
And yet I do need it time and time again - as mentioned in other replies. Let's say you're at a friend's house (without your laptop, it's a social evening and your spouse won't let you take it), the subject of conversation turns to palindromes, and the hostess expresses a desire for a simple method of determining whether or not a particular sentence is one; she'd be very appreciative. She has a computer, but has no need for development tools. Installing an IDE and potentially messing up the computer (or at least being blamed for it) is not a good option. Do you write a simple console app (as I would) or would you say you'll write it when you get home and get back to her next week?
-
To be a 'good' programmer, it's not about the tools. You have to know Design Patterns (and when to use or not use them), and SOLID principles, and even try things out in other languages. For all things SOLID, just do a search for 'Uncle Bob Martin', or 'SOLID Programming Principles'. The best book to get started is Agile Principles, Patterns and Practices in C# by Robert and Micah Martin. Learning Design Patterns + SOLID principles changed my programming for the better. There are many resources on the internet, that would be the best place to start, and the book I mention above is a must-have for C#. Find a good users group, and/or visit a Code Camp if there is one near you. Read Code. Lots of it. It's not about the tools. The tools don't make you a better programmer.
10!
-
And yet I do need it time and time again - as mentioned in other replies. Let's say you're at a friend's house (without your laptop, it's a social evening and your spouse won't let you take it), the subject of conversation turns to palindromes, and the hostess expresses a desire for a simple method of determining whether or not a particular sentence is one; she'd be very appreciative. She has a computer, but has no need for development tools. Installing an IDE and potentially messing up the computer (or at least being blamed for it) is not a good option. Do you write a simple console app (as I would) or would you say you'll write it when you get home and get back to her next week?
PIEBALDconsult wrote:
Do you write a simple console app (as I would)
Nope.
PIEBALDconsult wrote:
would you say you'll write it when you get home
Nope. I'd say "More wine, love?".
-
Rumour has it that before your are proficient at anything you have to be doing it for about 10 years. The language isn't all that important since it is just a way to make the computer dance. What is more important is software design.
You and I have heard similar rumours: 5 years to be useful 10 years to be good 15 years to be excellent
062142174041062102
-
10!
PIEBALDconsult wrote:
10!
Thanks! :-D But seriously, I'm speaking from experience. I had a résumé full of tools, and from that got a phone interview. I was excited until the guy on the phone absolutely lambasted me with question after question that I couldn't answer. He was actually really nice about it, and told me one piece of advice before hanging up: Learn Design Patterns. I wish today I could shake that guy's hand, because that one phone interview changed me. All this time later, I still mark that one day as the day I finally started to become a 'real' programmer. You can have all the 'tools' in the world on your résumé, and it may get you interviews, but you're not going to get past the interviews without real knowledge about programming. The language/tool is almost irrelevant. Once I had that basic foundation, even learning new languages became a breeze. Just some friendly advice. :cool:
-
Master C#. Learn how to develop without an IDE.
-
I am thinking what is the minimum should I know before I can call myself a "good" .NET developer ? This is what I am comfortable with so far : C# ASP.NET Javascript AJAX Control toolkit Telerik Rad Controls , iTextSharp library (Third party .NET controls) Some basic LINQ (I started using this in my current project).
virang_21 wrote:
what is the minimum should I know before I can call myself a "good" .NET developer ?
I'd like to extend your question, if you don´t mind. To be a good developer (no matter the language) you have to understand your customer. You have to be able to "see" what the user wants and how he wants it. The real value of a programmer lies in is his ability to understand what they expect and want from him.