|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| ||||||||||||||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Should i switch to c#?
I have been using C++ for a while, but I could not make a usefull program, i mean the only programs i have done are exercises for university such as finding the largest number, ordering an array etc...
Now i am thinking of switching to C#, I think it is easier than C++, it has more libraries etc. Also I see that the .net framework is being used a lot at the software industry What's your opinion? ![]() |
|
#2
|
||||
|
||||
|
When you tie yourself to a single platform you rise or fall with that platform. I have found C++ (and C) to be extremely versatile and gives me opportunities from embedded hardware to super computers. I doubt you would ever get those sorts of opportunities with C# (or .Net), so that could be a factor. Just because the vast majority of desktop systems are running Windows doesn't mean that there aren't a huge number of *nix servers out there and while I have been told that .Net and C# are supposed to run on *nix, somehow I doubt it gets the time and energy of MS developers like Windows does.
I have also heard (I am self-taught so know nothing about the university system) that many CS programs focus on 4 GL programs because they are less subject to subtle bugs because they protect you from common mistakes. That might help with the basics of learning programming (why Pascal was created, if I recall correctly), but doesn't necessarily help you with the few times when you really need to dig down deep to make something specific happen. If programming were really easy there would be no justification for the 6 figure salaries many of us get. Perhaps that is the point of C# and .Net, to lower the pay scale of programmers.
__________________
Free code: http://sol-biotech.com/code/. Secure Programming: http://sol-biotech.com/code/SecProgFAQ.html. Performance Programming: http://sol-biotech.com/code/PerformanceProgramming.html. It is not that old programmers are any smarter or code better, it is just that they have made the same stupid mistake so many times that it is second nature to fix it. --Me, I just made it up The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man. --George Bernard Shaw |
|
#3
|
|||
|
|||
|
So i should better stick to c++?
|
|
#4
|
||||
|
||||
|
It is not up to me! It is a personal choice and I can almost guarantee that whatever you pick will have exactly zip impact on what you wind up working on. I was once an expert in VB and have programmed thousands of lines of Perl despite despising both languages. In one job I had to sneak in any C++ programming I did do by writing little programs for my own (one I wrote to troll through the VB source to change all the sizes of everything so it would look right on a screen with smaller resolution). In fact, the bulk of my C++ experience came _after_ I told my boss I was quitting because I hated Perl programming so much. Despite investing lots of time in becoming an expert in C programming (skills that have since atrophied to the point I no longer claim expertise) I have very little paid experience. At one point I thought I wanted to be a Java programmer, but was never able to get any jobs and the little experience I have had didn't endear me to the language precisely because it has such an extensive library of tools (one of the reasons I was slow to embrace C++, btw).
You should first be concerned about gainful employment. If it turns out you have choices, then you can allow your wishes to influence your picks. Just remember, being hired to do a specific task doesn't mean that is what you will actually do! At my recent job I interviewed as a heads-down C++ programmer and have since mutated into a systems engineer and have a sneaking suspicion I might be shoe horned into a job as a sales engineer in the not too distant future. I might be lucky to code ever again! |
|
#5
|
||||||
|
||||||
|
Quote:
Quote:
Quote:
Quote:
Now having said that, when I started using .NET I very quickly became frustrated with C++/CLI (but primarily because I am an experienced C++ developer, and C++/CLI is really a different language - albeit an entire superset of C++). I came to the conclusion that if I had to learn a new language to use .NET, I may as well use one that was designed from the ground up to work with .NET, rather than one that has been massaged to work with it. So I would say that is you want to use .NET, use C#. All other reasons you suggested are probably ill-informed. Clifford |
|
#6
|
|||
|
|||
|
Quote:
Thank you for your replys... I may get a little offtopic now, but I would like to know how i can solve my inability to write non-trivial programs |
|
#7
|
||||
|
||||
|
Practice, practice, practice, practice.
|
|
#8
|
||||
|
||||
|
Quote:
Find yourself a project of significant complexity, with real utility (i.e. solves a problem or fills a niche), and which you have sufficient personal motivation to solve. Or get job. I write software (embedded) for a living - there in part is my motivation; I do it because I am paid to. My personal projects seldom get off the ground, because I don't need to solve them, and have to set aside time to do so. So when it gets too much trouble I generally abandon them (or find an existing solution rather than reinvent the wheel). The other issue is learning how to design software systems. That is a whole different level than just coding. Few of your projects of any significance will be successful without a coherent design. Clifford |
|
#9
|
||||
|
||||
|
What year student are you? How long have you been programming?
I suspect a tutor could help you out a lot. Some people learn better with very personalized instruction. You may also try Googling for helpful videos. Many University courses videotape their lectures and put them online. Your ultimate goal in school isn't really to learn a particular language. It's to learn programming philosophies. It's very likely that your first programming job will be in a language you haven't programmed in before. Once you learn the ideas behind programming, changing languages is merely (for the most part) learning a different syntax. Most of the concepts are the same. That doesn't mean jump to the easiest language. It means learn with the language that will teach you the most about programming concepts. I am not a c# programmer; so I'm not sure of the advantages and disadvantages in contrast to C++. I started with C++ and I'm glad I did. |
|
#10
|
||||
|
||||
|
I second both responses: motivation, practice, and learn to design. An application that is coded before it is designed is doomed to failure. Even if it winds up working perfectly (small probability) it will take too long and cost too much. Failure is a great de-motivator.
Curiosity and a desire to learn can also be a good motivator. Money is just better, practically speaking.
__________________
Write no code whose complexity leaves you wondering what the hell you did. Politically Incorrect DaWei on Pointers Grumpy on Exceptions |
|
#11
|
||||
|
||||
|
A really good programmer can sit down and knock out up to maybe a few thousands lines of code with only a vague outline for a design their head. A few thousand lines of code just barely gets you over the bar of triviality. The day will soon come when simply having ninja level programming skills won't get you a job. You need engineering skills.
Programmers are to engineers, what carpenters are to architects. Architects don't much care whether carpenters use a hammer or one kind of nail gun or another, they only care that everything gets done in accordance with local codes. As others have pointed out, you will probably need to be familiar with multiple programming languages. In fact, you'll probably have to become proficient in at least one new programming language every decade or so. Your engineering skills on the other hand will not follow such a linear trajectory. You will probably accumulate maybe 50% of your entire careers worth of engineering skills within the first few years. Those will serve you well, but you can never stop learning in this business or you will find yourself unemployed.
__________________
My worst nightmare was a pointless infinite loop. Work in progress; don't poke the curmudgeon! http://www.odonahue.com/ |
|
#12
|
||||
|
||||
|
I humbly suggest a good direction would be to learn html inside out, and from there javascript.
__________________
Primary Forum: .Net Development Holy cow, I'm now an ASP.Net MVP! [Moving to ASP.Net] | [.Net Dos and Don't for VB6 Programmers] http://twitter.com/jcoehoorn |
|
#13
|
||||
|
||||
|
Flar, I humbly suggest that you're reading more into the question than was actually there. You could be right, of course, but I wouldn't bet on it.
|
|
#14
|
|||
|
|||
|
Thank you all again...
AndyMNE:I study electrical and computer engineering. Now i am starting the 3rd year... f'lar: I know good html and the basics of javascript Can you suggest me what to read for desig?ning software |
|
#15
|
||||
|
||||
|
Quote:
At the lower level, just above the actual coding skill level I suggest Code Complete 2 by Steve McConnell and Writing Solid Code by Steve Maguire. These are practical and straightforward books that will get you to the 'next level' of code fu without getting into too many abstract concepts; many software engineering books leave you thinking "yes, but how does this end up as code?"! These are the 'missing link' perhaps. Beyond that, recommendations may be domain specific to some extent, and may differ depending on whether it were web development, embedded systems, desktop applications, enterprise level applications or whatever that you were interested in. There are some generally applicable techniques that you might apply. I'd get some literature on design patterns (Code Complete 2 contains a few) to prevent you from reinventing the wheel. Understanding design patterns will probably require something on UML. UML is not the only notation used in software engineering, but it is currently the most widely accepted, most widely supported by tools, and the most widely used in the current literature. UML is a notation without a specific methodology (earlier notations were often tied closely to the author's methodology), such methodologies also vary between domains, and with size of development team. I work in embedded systems, and in that domain would recommend Real-time UML by Bruce Powel Douglass; but unless or until you are working on commercial projects with multiple developers, you probably do not need to go that far unless it really interests you. Clifford Last edited by clifford : September 10th, 2009 at 05:14 AM. |
![]() |
| Viewing: Dev Shed Forums > Programming Languages > C Programming > Should i switch to c#? |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|
|