Book Recommendation
-
Which books would you recommend to someone who is novice to programming and have interest to dive in to the world of software development. I am specifically asking for .NET Technologies.
Not really beginners stuff, but the "C# in a nutshell" series from O'Reilly by Albahari is amongst my favourites: C# 7.0 in a Nutshell - About the Book[^]
-
This is not an answer, it is just a reflection... Is it this person that wants .NET or is it your idea? Personally I would recommend building programming knowledge on a solid foundation from the ground up. With a language that does not need specific frameworks and IDEs. I have seen even experienced Java coders with very vague understand of what a stack is, makes me a tad sad. But maybe that is just me. :cool:
... such stuff as dreams are made on
-
Not really beginners stuff, but the "C# in a nutshell" series from O'Reilly by Albahari is amongst my favourites: C# 7.0 in a Nutshell - About the Book[^]
That was in my mind too, but i thought it might look little complex to someone who is novice to programming
-
Which books would you recommend to someone who is novice to programming and have interest to dive in to the world of software development. I am specifically asking for .NET Technologies.
Google. It's free.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013 -
Google. It's free.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013yes but for a student i would prefer him to first do some reading
-
That was in my mind too, but i thought it might look little complex to someone who is novice to programming
Then I suggest you follow some entry level course first (it should be possible to follow only slect courses at the local university without fully enrolling) because programming is first of all a forma mentis [literal: shape of the mind], a way to think, dissect and solve problems. It requires a lot of exercise and a bit of tutoring helps, epsecially with ome formal knowledge.
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
-
This is not an answer, it is just a reflection... Is it this person that wants .NET or is it your idea? Personally I would recommend building programming knowledge on a solid foundation from the ground up. With a language that does not need specific frameworks and IDEs. I have seen even experienced Java coders with very vague understand of what a stack is, makes me a tad sad. But maybe that is just me. :cool:
... such stuff as dreams are made on
megaadam wrote:
This is not an answer, it is just a reflection...
He's a novice. I don't think he should START OUT with reflection. Surely, that can come later... ;P
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
Never argue with a fool. Onlookers may not be able to tell the difference.
Mark Twain -
Which books would you recommend to someone who is novice to programming and have interest to dive in to the world of software development. I am specifically asking for .NET Technologies.
Along with my previous suggestion of following some formal courses, if you can't or don't want and you are starting from zero following the self taught way, I suggest you Teach Yourself the C# Language in 21 Days, SAMS publishing. I do not have any experience with that specific book but at the time I used the VB6 edition. It is not the best way to learn and will yield only mediocre results without a more abstract knowledge of programming itself but I managed to learn how to program (very badly but usually getting the results I wanted) aged 14.
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
-
This is not an answer, it is just a reflection... Is it this person that wants .NET or is it your idea? Personally I would recommend building programming knowledge on a solid foundation from the ground up. With a language that does not need specific frameworks and IDEs. I have seen even experienced Java coders with very vague understand of what a stack is, makes me a tad sad. But maybe that is just me. :cool:
... such stuff as dreams are made on
-
Which books would you recommend to someone who is novice to programming and have interest to dive in to the world of software development. I am specifically asking for .NET Technologies.
TutorialsPoint has some nice online tutorials, e.g. C# Tutorial[^] Bit dated, they use VS2010, but a good introduction to C#, they even have an online IDE to dabble in.
-
Which books would you recommend to someone who is novice to programming and have interest to dive in to the world of software development. I am specifically asking for .NET Technologies.
I personally found "CLR via C# 4th Edition" very helpfull.
"Coming soon"
-
I personally found "CLR via C# 4th Edition" very helpfull.
"Coming soon"
-
Along with my previous suggestion of following some formal courses, if you can't or don't want and you are starting from zero following the self taught way, I suggest you Teach Yourself the C# Language in 21 Days, SAMS publishing. I do not have any experience with that specific book but at the time I used the VB6 edition. It is not the best way to learn and will yield only mediocre results without a more abstract knowledge of programming itself but I managed to learn how to program (very badly but usually getting the results I wanted) aged 14.
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
den2k88 wrote:
I managed to learn how to program (very badly but usually getting the results I wanted)
It's like that for all of us. You can't expect to code perfectly from the beginning. I have noticed that the quality of my code has improved steadily over the years as I have learnt new best code practices from every project I've been involved in.
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
Never argue with a fool. Onlookers may not be able to tell the difference.
Mark Twain -
den2k88 wrote:
I managed to learn how to program (very badly but usually getting the results I wanted)
It's like that for all of us. You can't expect to code perfectly from the beginning. I have noticed that the quality of my code has improved steadily over the years as I have learnt new best code practices from every project I've been involved in.
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
Never argue with a fool. Onlookers may not be able to tell the difference.
Mark TwainAye but the difference in thought pattern I experienced from self taught to formally taught was amazing - so much that it later made me choose Computer Engineering instead of Computer Science due to the stronger focus on thought pattern and problem solving. Then I started working and my code and solutions improved dramatically over the years and are improving more and more with each project.
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
-
Aye but the difference in thought pattern I experienced from self taught to formally taught was amazing - so much that it later made me choose Computer Engineering instead of Computer Science due to the stronger focus on thought pattern and problem solving. Then I started working and my code and solutions improved dramatically over the years and are improving more and more with each project.
GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
Cool. I think I've always had the correct thought pattern. For me, the code quality improvements have mostly come from knowing what can be done, how you do it in the best way, what functionality your chosen frameworks have to offer and what technologies to use. In the beginning, I would do something that may have worked, in a strange and complicated way simply because I didn't know that a better and easier way existed. The how-to knowledge comes from experience over time, but also from sharing ideas with your fellow collegues. Nobody knows everything about everything... :-D I shudder when I look at code I wrote 10 years ago (in the cases where I actually understand what it does and remember that it WAS in fact I who wrote it and not a five year old on drugs) :~
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
Never argue with a fool. Onlookers may not be able to tell the difference.
Mark Twain -
Not really beginners stuff, but the "C# in a nutshell" series from O'Reilly by Albahari is amongst my favourites: C# 7.0 in a Nutshell - About the Book[^]
I got quite a bit out "HeadFirst C#) while I was teaching myself C#. Head First C#, 3rd Edition - O'Reilly Media[^] I was already a proficient C/C++ programmer so I don't claim I was a total newb. My first C book was "The C Programming language" by Kernighan and Ritchie (original edition, yes I am pre-dirt). I am a huge fan of the Steve Oualline's work also. His Practical C Programming and Practical C++ Programming were very helpful to me in my progression. Horribly obsolete from a toolchain standpoint, but his explanations of the languages themselves (at least as they were in the 90's) are extremely clear and logical.
-
This is not an answer, it is just a reflection... Is it this person that wants .NET or is it your idea? Personally I would recommend building programming knowledge on a solid foundation from the ground up. With a language that does not need specific frameworks and IDEs. I have seen even experienced Java coders with very vague understand of what a stack is, makes me a tad sad. But maybe that is just me. :cool:
... such stuff as dreams are made on
megaadam wrote:
have seen even experienced Java coders with very vague understand of what a stack is, makes me a tad sad.
I belong to the generation knowing what a stack is. An interrupt handler. How a virtual function is (or rather: ways that it can be) implemented. What microdoce is. And then I know car drivers who can't explain how a combustion engine works. They can't explain a gear box. Or why a car is packed with relays while you home isn't. Yet they can make use of a car for getting work done, even though the inner mechanics are unknown to them. Sometimes, knowing the inner workings can be a barrier. There are certain aspects of C#/WPF dependency properties and bindings that I do not know how are (or might be) impelemented, and that takes a lot of my attention: I am not capable of just using it without knowing the workings, as the younger generation does, but spend significant energy on trying to deduce from the behaviour how it is done. (No, I have not gone into the source code. Maybe I should.) There will always be a far more things that you do not know how works than those you understand. Try to always understand the workings one layer down from what you "have to" understand, but not ten levels down. You don't have to understand the theoretical models of P/N-junctions to program C#. You may not even need to know the static and dynamic link locations of a stack, whether stack frames are allocated continously or on a heap, whether or not threads stacks link back to the stack frame from which it was started, differences in stack allocation for processes vs. threads. What you need to know is at a far more elementary level. Like the gearbox in you car: You need to know to use a higher gear at higher speeds, lower gear at lower speeds. And if you have an automatic gearbox, you don't even have to know that.
megaadam wrote:
With a language that does not need specific frameworks and IDEs.
Like, "I would recommend learning to drive a car that doesn't have a synchronized gearbox, but requires you to double-clutch, to make you understand how the real thing is". ... I guess that I disagree. Both with cars and IDEs.
-
megaadam wrote:
have seen even experienced Java coders with very vague understand of what a stack is, makes me a tad sad.
I belong to the generation knowing what a stack is. An interrupt handler. How a virtual function is (or rather: ways that it can be) implemented. What microdoce is. And then I know car drivers who can't explain how a combustion engine works. They can't explain a gear box. Or why a car is packed with relays while you home isn't. Yet they can make use of a car for getting work done, even though the inner mechanics are unknown to them. Sometimes, knowing the inner workings can be a barrier. There are certain aspects of C#/WPF dependency properties and bindings that I do not know how are (or might be) impelemented, and that takes a lot of my attention: I am not capable of just using it without knowing the workings, as the younger generation does, but spend significant energy on trying to deduce from the behaviour how it is done. (No, I have not gone into the source code. Maybe I should.) There will always be a far more things that you do not know how works than those you understand. Try to always understand the workings one layer down from what you "have to" understand, but not ten levels down. You don't have to understand the theoretical models of P/N-junctions to program C#. You may not even need to know the static and dynamic link locations of a stack, whether stack frames are allocated continously or on a heap, whether or not threads stacks link back to the stack frame from which it was started, differences in stack allocation for processes vs. threads. What you need to know is at a far more elementary level. Like the gearbox in you car: You need to know to use a higher gear at higher speeds, lower gear at lower speeds. And if you have an automatic gearbox, you don't even have to know that.
megaadam wrote:
With a language that does not need specific frameworks and IDEs.
Like, "I would recommend learning to drive a car that doesn't have a synchronized gearbox, but requires you to double-clutch, to make you understand how the real thing is". ... I guess that I disagree. Both with cars and IDEs.
It almost seems you "want" to misunderstand what I am saying. :cool: So please let me try again. I am saying if you learn WPF and WPF only you can of course become a great WPF coder. But I think there is some risk that you will be conceptually be stuck in "WPF is programming" which will hurt you outside that bubble. And I have observed this phenomenon. You have observed the flipside of it. Both exist. I think the first is worse, that's all.
... such stuff as dreams are made on
-
It almost seems you "want" to misunderstand what I am saying. :cool: So please let me try again. I am saying if you learn WPF and WPF only you can of course become a great WPF coder. But I think there is some risk that you will be conceptually be stuck in "WPF is programming" which will hurt you outside that bubble. And I have observed this phenomenon. You have observed the flipside of it. Both exist. I think the first is worse, that's all.
... such stuff as dreams are made on
I have observed the same thing, but much stronger, in networking. 9 out of 10 Comp.Sci graduates believe that TCP/IP is networking. If you try to introduce them to e.g. connect ID (rather than the full IP address and TCP port no), to end-to-end routing at the physical layer, out-of-band signalling or different addressing schemes, they give you a blank stare: That's not the way it is done! You see it in all sorts of software: Whatever concept or abstraction you try to introduce, a farir share of programmes will answer "Oh, but we don't need that, we will just so so-and-so using our old tools". People will always be stuck in their old habits, at least until they have been forced to work with five or six alternate ways of doing things. But one way must be the first! It is far better to make C# and Visual Studio your first, much better than assembly language (or even K&R C), vi and gcc. The major disadvantage is that if you are later forced to work in K&R C using vi as you "IDE", it feels like moving from a modern apartment into a stone age cave. The first language / environment you learn is like your first sweetheart - you'll carry joyful memories from that time for the rest of your life. I started (serious) progrmming in Pascal, and 30+ years later, I still miss some of its features in today's languages. Similarly, you must expect people who start out with WPF / VS to have sweet memories of that when they are forced to switch to vi (and I won't blame them :-)). I don't think that is a good enough reason for making a poorer choice for a beginner's toolset.
-