C++, C#, web... Where do I go from here?
-
El Corazon wrote:
C++09
Its official? Finally. Somehow C++0x seems so much nicer a name, maybe I just got used to it..
Don't forget to vote if the response was helpful
Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation
It is indeed. Alistair Meredith gave a rapid fire summary of it at this years ACCU Conference[^], and I can confirm that '09 is a major upgrade to the language. I blogged about it at http://www.riverblade.co.uk/blog.php#6807606905401253431[^] (NB it's a long post as it covers all the sessions I attended that day - look for "C++ 2009 in 90 minutes").
Anna :rose: Having a bad bug day? Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
It is indeed. Alistair Meredith gave a rapid fire summary of it at this years ACCU Conference[^], and I can confirm that '09 is a major upgrade to the language. I blogged about it at http://www.riverblade.co.uk/blog.php#6807606905401253431[^] (NB it's a long post as it covers all the sessions I attended that day - look for "C++ 2009 in 90 minutes").
Anna :rose: Having a bad bug day? Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
As my younger brother says, "wicked cool!" :D
Don't forget to vote if the response was helpful
Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation
-
As my younger brother says, "wicked cool!" :D
Don't forget to vote if the response was helpful
Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation
It sure is. It's going to take a while to work its way through to the compiler vendors, though.
Anna :rose: Having a bad bug day? Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
Is it that I am wearing rose colored glasses or were things much easier when it was just C++ and MFC? Now that I have been doing consulting / contracting with .Net for a few years I find myself missing the days when I was working with C++/MFC. It seemed you had more control. There wasn't the disjointed mix of C#, SQL, HTML, CSS, ajax, java script, etc etc to debug. Then I had worked with C++/MFC for a few years, now it is all about the "generalised specialist", and I tend to feel like I am struggling to learn new things all the time. Maybe I should go into Project Management as the programmer career path articles seem to say you should, or should I try to specialise in something again? Just hard to know what to choose when everything changing so much.
Simpler? Before C++ and MFC, I was programming in Fortran, Algol, Pascal, Forth, Basic, Prolog, and 3 or 4 assembly languages. C++ was just another language in a long line-up and I've learned more since. I think you are just working in a semi-isolated environment and need to get out more! I was interfacing legacy Fortran, Basic and assembly language apps with Excel, Word, etc. and VBA back with WfW. (remember that mess?)
The PetroNerd
Walt Fair, Jr. Comport Computing Specializing in Technical Engineering Software
-
Hi, I thought i was the only one feeling like that... I programmed in Delphi, had control about my code. Had some ownbuild reusable components and source code. Develop time was much shorter then now programming C# to get the same result. It was a pleasure to write software. Now with all the new techniques with never ending story, i'm thinking about quiting my job as software engineer en start something completely different. On the other side... yes i programmed also Basic :-) , T-SQL and ASP/HTML. So, what's the difference.. There's much to learn those days and it's more difficult to choose a direction that suits you. Too bad you can't do and know everything just like we did in the old days. greetz kurt PS : You're going the right way if you stop from time to time and think by yourself... where am i, what am i doing, is this what i want and where will i go to ?
topcatalpha wrote:
I thought i was the only one feeling like that...
Hi Kurt, No, you are definitely not alone. I've been doing this about 32 years now myself and have felt exactly like this. In my case I've simply reached a point where I realize that there's no way I can keep up with it all. In my particular job I'm fortunate to have specialized in the business-rules layer which is mostly written in VB/VB.Net. I do use C# from time-to-time which is OK but since I'm the "owner" of this section of the system (no one else wants to touch it) I've got pretty good control of what I do here. I spent many years writing C and Assembly code when PC's were new. Loved doing that. I've tinkered with web development here and there over the last 7 years or so and understand how to do it but it's still not something I do by choice. We have a lot of young developer here who are all into that stuff - I just take the low-level junk that they don't want to do. I still really enjoy writing code. I don't have any aspirations for management, make a good living at it and my life is relatively quiet. The pieces I build in the system are critical to its operation but I can still afford to keep things relatively simple. The key, IMHO, is to specialize if possible and get REALLY GOOD at doing a few things rather than trying to know just a little about it all. Remember the saying "Jack of all trades, master of none?". That applies BIG TIME in this field. -CB ;)
-
Hamed Mosavi wrote:
. Look at the code project. Once upon a time few people had enough confidence, as a result of their knowledge, to write articles; quality of articles were considerably higher then.
To be fair, the issue here is a flood of bad articles from people, not a dropping in quality. The same number of good articles is coming in, I believe.
Christian Graus No longer a Microsoft MVP, but still happy to answer your questions.
Here's the thing. Web development has become fad driven. Being a web developer is like working in marketing (what's the new black today). Languages and frameworks spring up on a daily basis, most only partially realized before they are cast aside in favor of some other new technology. Pyhon, Ruby, Ruby on Rails, Iron Python what's that? Oh you want me code it in F#, sure, whatever. In many cases these languages are designed to solve a specific problem the problem of course is that everyone is off partially implementing their own thing rather than producing a cohesive set of technologies that everyone can learn, use and expand. It would be really nice if someone would decide what language and technologies are going to power the web and stick to it. Hell, I'd like it enforced at the router level. If your code isn't up to snuff, you can't be on the internet, that simple.
-
Simpler? Before C++ and MFC, I was programming in Fortran, Algol, Pascal, Forth, Basic, Prolog, and 3 or 4 assembly languages. C++ was just another language in a long line-up and I've learned more since. I think you are just working in a semi-isolated environment and need to get out more! I was interfacing legacy Fortran, Basic and assembly language apps with Excel, Word, etc. and VBA back with WfW. (remember that mess?)
The PetroNerd
Walt Fair, Jr. Comport Computing Specializing in Technical Engineering Software
I agree with that. Software development is about creating a solution to something a client needs help with. The huge stack of languages is nothing more than a variety of tools meant to do this. That one language is better than another under certain circumstances is always going to happen. That the best one may involve many languages/pieces is highly likely. One size fits all is just not applicable in technology. Think of the number of cell phones or computers that are discarded extremely fast and you will realize the pace of change That people come up with very specific lanuguages addressing very narrow issues is a testament to people and their persistence in trying to find better solutions (even if no tool exists). Sure Microsoft hypes it all up as do others, but my enjoyment of software does not come from being able to perfectly master a language but in being able to cleanly and elegantly create a solution to a complex issue, and then have it as maintainable as possible. I really find it exciting to find a way to do something that was extremely difficult and error prone one way, be simple and natural in another language. I don't chase fads and do take a late to the party approach (Who has Windows XP SP3 yet?), but I sure do like to know what is hot so that I can watch it. I also like to know enough about the language (Perhaps not actually learning the language yet sometimes) to tell if it will help me when I encounter a client situation that the language was designed for. The Pragmatic Programmer (Andrew Hunt & David Thomas - Addison Wesley) is an awesome read for anyone in this field. :)
-
Is it that I am wearing rose colored glasses or were things much easier when it was just C++ and MFC? Now that I have been doing consulting / contracting with .Net for a few years I find myself missing the days when I was working with C++/MFC. It seemed you had more control. There wasn't the disjointed mix of C#, SQL, HTML, CSS, ajax, java script, etc etc to debug. Then I had worked with C++/MFC for a few years, now it is all about the "generalised specialist", and I tend to feel like I am struggling to learn new things all the time. Maybe I should go into Project Management as the programmer career path articles seem to say you should, or should I try to specialise in something again? Just hard to know what to choose when everything changing so much.
It sounds like you're writing web apps. MFC was a very discrete platform to write for (on one OS even!). Browsers are a whole different story. I think a comparison of C++/MFC to something like C#/WinForms, you'd see something more congruous to what you're used to. The "old school" web app was an equally confusing mess of perl, HTML, and javascript. Maybe SQL, but you were probably using flat-file databases (maybe BerkleyDB in perl). All that was equally confusing, I think, compared to C++/MFC. You probably had a lot less javascript, though. It was was before the AJAX days.
-
Several times I thought about it. Maybe people gain confidence more and more! I'm not kidding. Look at the code project. Once upon a time few people had enough confidence, as a result of their knowledge, to write articles; quality of articles were considerably higher then. Something similar maybe going on in programming field today. Designing and inventing new technologies was something to do with care, I believe. Many fundamental inventions in Computer science were done carefully(Memory management, multitasking, multithreading, communicating using sockets, etc), but now we go another way. As soon as someone has an idea (mostly in Microsoft but not limited to them), a new technology comes out and sooner or later when they notice that there had been a better way, totally different, they start implementing the better way again and again. Maybe people have too much confidence or money so they don't care if any of their technologies fail, maybe it's normal because everything is moving from desktop to web while basement was not ready for these heavy sort of tasks, maybe they're trying to make it more team work and working alone becomes more and more difficult(Managers, Designers, Graphic guys, DBAs and (sometimes we need :-D) programmers), maybe it's a technology not matured yet, maybe... Anything the reason is, I totally agree with you that spending everyday learning new things is not interesting. I want to have enough free time to use what I learned.
"In the end it's a little boy expressing himself." Yanni
modified on Monday, August 11, 2008 1:13 AM
Hamed Mosavi wrote:
Maybe people have too much confidence or money so they don't care if any of their technologies fail, maybe it's normal because everything is moving from desktop to web while basement was not ready for these heavy sort of tasks, maybe they're trying to make it more team work and working alone becomes more and more difficult(Managers, Designers, Graphic guys, DBAs and (sometimes we need ) programmers), maybe it's a technology not matured yet, maybe...
I go with the "immature technology" explanation. Look at the history of other technologies (trains, planes, automobiles, road-making all suggest themselves) and you'll see similarities in the way these technologies matured, and similarities to the way software development has evolved so far.
-
Hamed Mosavi wrote:
Maybe people have too much confidence or money so they don't care if any of their technologies fail, maybe it's normal because everything is moving from desktop to web while basement was not ready for these heavy sort of tasks, maybe they're trying to make it more team work and working alone becomes more and more difficult(Managers, Designers, Graphic guys, DBAs and (sometimes we need ) programmers), maybe it's a technology not matured yet, maybe...
I go with the "immature technology" explanation. Look at the history of other technologies (trains, planes, automobiles, road-making all suggest themselves) and you'll see similarities in the way these technologies matured, and similarities to the way software development has evolved so far.
Agreed. If there was a single language that answered every problem, perhaps there wouldn't be a need for newer ones, but as new things are discovered/created/invented, there are things that languages have to do that weren't there before and that they were created for. :)
-
Is it that I am wearing rose colored glasses or were things much easier when it was just C++ and MFC? Now that I have been doing consulting / contracting with .Net for a few years I find myself missing the days when I was working with C++/MFC. It seemed you had more control. There wasn't the disjointed mix of C#, SQL, HTML, CSS, ajax, java script, etc etc to debug. Then I had worked with C++/MFC for a few years, now it is all about the "generalised specialist", and I tend to feel like I am struggling to learn new things all the time. Maybe I should go into Project Management as the programmer career path articles seem to say you should, or should I try to specialise in something again? Just hard to know what to choose when everything changing so much.
For an site that takes a guess at the latest language trends and tries to "statistically" show a language's adoption go to TIOBE Programming Community Index[^] :-D
-
Agreed. If there was a single language that answered every problem, perhaps there wouldn't be a need for newer ones, but as new things are discovered/created/invented, there are things that languages have to do that weren't there before and that they were created for. :)
Juan de Villiers wrote:
Agreed. If there was a single language that answered every problem, perhaps there wouldn't be a need for newer ones, but as new things are discovered/created/invented, there are things that languages have to do that weren't there before and that they were created for.
:laugh: Don't I know it...while I was beginning my career building C apps (starting with K&R C), I was building a grad research project using PDC Prolog (a PC-based Prolog IDE). If ever two languages differed, it would be these.
-
Rocky Moore wrote:
Anyway, your career path should be based on what "you like to do". If you are a coder at heart, why push the management end unless you want that resposibility.. If you are only money, then Management is where the bucks live. It is really up to what your goals are and how much stress you like.
So is coding a stressful option? :) I was considering project management as a less stressful option. Everything feels out of control, maybe as PM I would have more control? Though really I think I am just going one of those-were-the-days things you sometimes do on a Monday. :)
anixi wrote:
So is coding a stressful option?
Living is a stressful option. You may quote me on that. I would further observe that not everyone can code, and fewer still can fully develop, software. More peope can manage projects than can code, but it's a valuable skill that's transferable to a large number of domains (remember that the project manager for the Pentagon was also the PM for the Manhattan Project. Business people will pay VERY well for a project manager with enough technical chops to understand the techies and enough business savvy to explain to a business person how a business need might still be met if the sixth bungo on the File menu isn't active in the first release. I've seen guys with eons of experience in tech fail this, and seen some really daffy stunts pulled by business folks with just enough understanding to create dangerous architectures. I've also seen people on both sides develop into truly Happiest are they who are the cherry-pickers, managers who have enough delegates to allow time to grab the sweetest potatoes from the code potato pile and cook them up for themselves while still managing the project and reaping the rewards. I've known at least two consultants who made a nice living out of projects with a lot of cherry-picking.
-
Is it that I am wearing rose colored glasses or were things much easier when it was just C++ and MFC? Now that I have been doing consulting / contracting with .Net for a few years I find myself missing the days when I was working with C++/MFC. It seemed you had more control. There wasn't the disjointed mix of C#, SQL, HTML, CSS, ajax, java script, etc etc to debug. Then I had worked with C++/MFC for a few years, now it is all about the "generalised specialist", and I tend to feel like I am struggling to learn new things all the time. Maybe I should go into Project Management as the programmer career path articles seem to say you should, or should I try to specialise in something again? Just hard to know what to choose when everything changing so much.
-
Ah, being given the chance to get confident is a luxury with browser based stuff. Since I started 10 years ago I've lost track of the languages, toolsets, libraries and methodologies that I've abandoned along the way - never mind the ones I'm supposed to be expert in today.
My thoughts exactly. So back to the original guy's question... how do you practically stay up to speed? I've also been in the field a while, but feel I know much less now than when I just started. So any tips on how to stay up to scratch? Websites? Books? RSS? What technologies would you feel is important to know now and whats the best way to get there? Thanks.
-
My thoughts exactly. So back to the original guy's question... how do you practically stay up to speed? I've also been in the field a while, but feel I know much less now than when I just started. So any tips on how to stay up to scratch? Websites? Books? RSS? What technologies would you feel is important to know now and whats the best way to get there? Thanks.
I've been working in software dev. for 20 years with the last 10 on the web; so if I couldn't offer advice it would be a poor tale! To thrive in software the best bet is always to focus on something; either on a very profitable niche, the very latest tech., legacy tech or on the most popular tech. There seems little point (to me) focusing on the mid-range players as they tend to be taken over or shrivel - or on over-hyped vapour peddlars. I personally like to focus on the most popular tech., so when I was younger I went onto jobsites like jobserve and work out what is the most popular in my area; this gave my hunches confidence. I like books but am incresingly tempted by exam based 'proof' like BrainBench or MS certificates, and for me this is the best set of skills to acquire to cover the next 5-10 years; Skills to acquire: Sql Server 2005, 2008 (some odd extension but hey-ho) C# 2.0, 3.5 (not bothered about 3.0) CSS Javascript (APIs to Ajax included) Photoshop There is a lot there but I'll recommend books if it will help.
-
Here's the thing. Web development has become fad driven. Being a web developer is like working in marketing (what's the new black today). Languages and frameworks spring up on a daily basis, most only partially realized before they are cast aside in favor of some other new technology. Pyhon, Ruby, Ruby on Rails, Iron Python what's that? Oh you want me code it in F#, sure, whatever. In many cases these languages are designed to solve a specific problem the problem of course is that everyone is off partially implementing their own thing rather than producing a cohesive set of technologies that everyone can learn, use and expand. It would be really nice if someone would decide what language and technologies are going to power the web and stick to it. Hell, I'd like it enforced at the router level. If your code isn't up to snuff, you can't be on the internet, that simple.
The internet may yet collapse under its own weight but in the meantime; go to job sites, research what is popular and make sure that you have experience on each of the three main development tiers in your area. Database: Sql Server, MySql, Oracle, DB2 etc. Business: C#, VB.Net, PHP, Ruby, Python etc. Presentation: Javascript, Ajax, HTML, CSS, Photoshop etc. (My choices in bold)
-
Hamed Mosavi wrote:
Maybe people have too much confidence or money so they don't care if any of their technologies fail, maybe it's normal because everything is moving from desktop to web while basement was not ready for these heavy sort of tasks, maybe they're trying to make it more team work and working alone becomes more and more difficult(Managers, Designers, Graphic guys, DBAs and (sometimes we need ) programmers), maybe it's a technology not matured yet, maybe...
I go with the "immature technology" explanation. Look at the history of other technologies (trains, planes, automobiles, road-making all suggest themselves) and you'll see similarities in the way these technologies matured, and similarities to the way software development has evolved so far.
Probably the most lucid cut-through reply I've read; where do you read that will lead us?
-
anixi wrote:
So is coding a stressful option?
Living is a stressful option. You may quote me on that. I would further observe that not everyone can code, and fewer still can fully develop, software. More peope can manage projects than can code, but it's a valuable skill that's transferable to a large number of domains (remember that the project manager for the Pentagon was also the PM for the Manhattan Project. Business people will pay VERY well for a project manager with enough technical chops to understand the techies and enough business savvy to explain to a business person how a business need might still be met if the sixth bungo on the File menu isn't active in the first release. I've seen guys with eons of experience in tech fail this, and seen some really daffy stunts pulled by business folks with just enough understanding to create dangerous architectures. I've also seen people on both sides develop into truly Happiest are they who are the cherry-pickers, managers who have enough delegates to allow time to grab the sweetest potatoes from the code potato pile and cook them up for themselves while still managing the project and reaping the rewards. I've known at least two consultants who made a nice living out of projects with a lot of cherry-picking.
I agree good coding takes a certain mindset and dedication that not enough people are prepared to commit to. And I'm not talking about going to work for 8 hours and then forgetting about it (unless you are truly gifted). Put a tech book next to your bed and read it for 30-60 minutes before sleep.
-
topcatalpha wrote:
I thought i was the only one feeling like that...
Hi Kurt, No, you are definitely not alone. I've been doing this about 32 years now myself and have felt exactly like this. In my case I've simply reached a point where I realize that there's no way I can keep up with it all. In my particular job I'm fortunate to have specialized in the business-rules layer which is mostly written in VB/VB.Net. I do use C# from time-to-time which is OK but since I'm the "owner" of this section of the system (no one else wants to touch it) I've got pretty good control of what I do here. I spent many years writing C and Assembly code when PC's were new. Loved doing that. I've tinkered with web development here and there over the last 7 years or so and understand how to do it but it's still not something I do by choice. We have a lot of young developer here who are all into that stuff - I just take the low-level junk that they don't want to do. I still really enjoy writing code. I don't have any aspirations for management, make a good living at it and my life is relatively quiet. The pieces I build in the system are critical to its operation but I can still afford to keep things relatively simple. The key, IMHO, is to specialize if possible and get REALLY GOOD at doing a few things rather than trying to know just a little about it all. Remember the saying "Jack of all trades, master of none?". That applies BIG TIME in this field. -CB ;)
The web isn't the best place for genius specialists (try embedded or back-office systems) its a place for flexible, clever generalists. Genius specialists will get frustrated that the tech. that they are currently expert in has suddenly died; a flexible generalist will already have moved on.