The Best way to start with software development is to get your hands dirty with programming with a small application.
Not to forget about the ORM(Object Relational Mapper) that comes along with every Language Framework that helps query the database.
It's not a lot to begin with but will certainly give you a Head-Start into Web Development. Patience is the key, you dont have to become an One-Night Star. You can keep on learning frameworks and take advantage of the framework features. To learn about framework features begin with the framework websites and learn all about the features they provide. So Get-Up-Get-Going-Become-A-Web-Developer.
With Windows App Development, you have a wide options to choose from. C / C++ / VC# / VB / Java / Python Languages.
Libraries Associated for GUI Development: WIN32 API for C, MFC for C++ , WxWidgets for Open Source C++, Windows Forms for VC# / VB, WxWidgets for Python, Java Swing for Java.
A GUI Designer can be helpful for UI development.
If you Read the Right Books you will become great in Windows Developer. Feel-The-Vibe-Of-Windows-Applications-Development.
I have stated this answer as well as in for the question How should I start my journey as a programmer?
The Difference here is to master the framework that you want to work with. Get above the basics and know the framework Inside Out and become an expert web developer that people respect. Again the Framework Websites Can be Helpful to become an Expert!
It's a Great Time to Be a Web Developer! Become a RockStar!
COM is the Component Based Development which is the technology available only with Microsoft. Clearly it's a Win Situation if you want your app to be composed of Independent Components that are Memory Managed, Reused, Extendible and Utility Services to monitor them.
COM Components can be used with Windows Forms, Asp.net, MFC and Java.
Clearly COM Based Technology isn't going to disappear. Microsoft has invested Heavily in Developing COM Components and it isn't going to Retire COM.
With a Huge Application running on a Single PC, you wouldnt have to worry about the Processing Power with a Shared Database.
However if you have a Huge Application on a Web Server, you need to think over the software architecture of the application.
A Distributed Application would be the Best Bet which is provided by Web Services / WCF / Java Web Services.
The Services can be hosted on the cloud and can be scalable.
Software Engineering principles can be hard to master in traditional Waterfall Life cycle model and projects have failed to give the results as expected.
The Prescriptive approach has failed and the adaptive approach (Agile Approach) has clearly found its way in achieving the Results.
Traditional way can be used if the Requirements are Concise and Clear. If these are the requirements for your project then Waterfall can be helpful. However things aren't so clear in the Real World and Agile Approaches are the right way.
Software Engineering Principles and Practices aren't so hard to follow when you work on a Project.
Quality Focus, Process, Methods and Tools.
Software Engineering By Roger Pressman is the Bible for Software Engineering. Clearly the Best Book on the subject.
If you have a Team that is Cross Functional, TSP is an effective process that comes along with Tools - Team Dashboard.
Another Option would Be Agile Approaches like SCRUM, XP, LSD, ASD, KANBAN, FDD, Crystal, DSDM.
For a Complex Business, SCRUM has a lot of books that cover the process and has Tooling support VSTS ( Visual Studio Team Services ). Free for 3-5 users and paid from there on. It's not Costly and has the best features that provide the process tools. Features like Version Control, Sprints, Product Backlog, Burndown Charts, Mailing Users their day-to-day activities and many more.
Best Tooling Support by VSTS. Get Started If you are using SCRUM for your project.
Testers have a great place if they become specialized in UI, Integrated, Unit Testing, etc.
But the Test-Driven-Development in Agile Approaches is taking over and is really helpful.
With a Career as a Tester, things aren't so difficult but can be intimidating.
Learn new Testing Frameworks and you will be right on. Testers have a place in development and can be helpful to programmers when the burden is high for developers.
Many Books available for each frameworks and can be very easy to learn. UI Testing is the key to Testers and can be learned if Read Right Books. If you already are a Tester, my suggestion would be to become a Great Tester and slowly change into a developer.
Systems Analysts have their place in Agile Approaches and can be a great position to work on for Modeling the Set of Requirements.
When Gathering Requirements, try to Get Ownership as a Team with developers, sponsors, testers, etc. that way you are working as a Team and Thinking like a Team.
It's a great asset for a Successful Project but too much modeling will clutter up the project. Focus Modeling on the Key Areas of the Business and the Project will be a definite Success!
The Subject Matter Teamwork and Leadership is Best Studied by The Famous Author and Leader - JOHN MAXWELL.
If this is the first time you have heard about his Name then Start Reading his Books as much as possible. Be Careful while Reading the Books because you may have to speak about the contents of the book and think what JOHN MAXWELL would do.
With that said, if you are courageous enough to learn about Leadership, you will breeze through his books and learn All that the Author Provides.
But with Great Power Comes Great Responsibility!
With Courage, You can become a Leader for an IT Team and provide the Team the Leadership that Team Requires.
You could also Lead a Company following JOHN MAXWELL Books. The Power shifts into the Leader's Hand when Adversity Arrives!
If you have the Courage to be a Leader then with Passion, Perseverance and Humility, you will Become A Leader that Team Respects!
Agile Development has become pervasive and has a wealth of Books by Many Authors. SCRUM, XP, etc have many books available that cover ground for Agile Development. You need a Cross-functional team that is self-motivated to get the job done. Scrum Master is the coach that gives hints to the development team and guide them to pure agility.
Scrum has a wealth of books. Agile Modeling, Agile Architecture, Agile Documenting, Agile Implementation and Agile Testing, they all have books covered that can help you start with Agile approaches.
Expertise comes with practice and working with a development team and showing practice will gain you experience.
With a Clear Picture of SCRUM, you can become an expert in Agile Development.
I started Learning Dot Net and C# with hands on experience on a Project and this was the best way to start with Dot Net Programming.
Dot Net has a wealth of Books on Windows Forms Application, Asp.Net , Web Services, WCF, WPF and much more.
Dot Net has the best development Environment - Visual Studio for paid and free editions.
Dot Net Programming has a Short Learning Curve and you can quickly pick up other Languages like VB / VC++.
It's Really Worth the Time!
The Best Way to Start with C++ Language is to Begin with C Language.
Start Learning C Language and then Learn the WIN32 API.
Programming Windows with WIN32 API by Charles Petold. Best Book Ever on WIN32 API.
With that done Begin Learning VC++ and then the MFC (Microsoft Foundation Classes).
Programming Windows with MFC by Jeff Prosise.
The Sample Examples given on the book, Please run them on your PC and get a good grasp on the concepts. With that you will be a seasoned developer with VC++.
Begin with C Language Fundamentals and WIN32 API.
Programming Windows with WIN32 API by Jeff Prosise.
And that is All You Need to Know for developing Windows Apps with C Language.
Begin, Practice and Become an Expert!
Open Source C++ Language and the Open Source WxWidgets Framework.
CodeBlocks IDE for Application Development that comes with a Great GUI Designer.
Easy Language and Easy Framework. You can purchase the Book Cross-Platform with WxWidgets Book to get a grasp of concepts and you will be right on with Cross-Platform, open-source Development.
Not to forget, you also have other C++ Libraries that you can use along with WxWidgets!
Great Language, Great Framework, Great IDE, Great Community and Happy Coding!
SQL Server Integration Services, Analysis Services are the Best Books that can help you do Almost Everything You Desire to do with Data.
These Books have a High Learning Curve, but with Patience and Perseverance they can be conquered. It might just be a Matter of 1-month per Book but it's Really Worth It.
With that said I have answered almost every Beginner's Questions. I will certainly begin with your Questions if you feel free to mail me at email@example.com with your Questions.
Please Like the Button on My Home Page and help me make My Diary More Rich!