Journey through .NET 1.0 to .NET 3.5

January 10th, 2008 | Posted by Vidya Vrat in .NET - (0 Comments)

.NET Framework has covered long path and .NET 3.5 is available for developers. In the similar fashion Visual Studio 2008 has also been developed each time to accompany the newly developed .NET Framerowk version.

Lets understand about these evolution of various .NET Framework versions and Visual Studio suite.

.NET Framework –|—Year—-|—CLR—|——-Supported VS
.NET 1.0 ————-2001——-1.0.3705——Visual Studio 2002(Rainer)
.NET 1.1————–2002——-1.1.4322——Visual Studio 2003(Everett)
.NET 2.0————-2005——-2.0.50727—-Visual Studio 2005(Whidbey)
.NET 3.0————-2006——-2.0.50727—-VS 2005 extensions for.NET 3.0
.NET 3.5————-2008——-2.0.50727—-Visual Studio 2008 (Orcas)

.NET 3.0 comes with following brand new features:
* WPF(Windows Presentation Foundation)
* WCF (Windows Communication Foundation)
* WWF or WF(Windows Workflow Foundation)
*WC (Windows Cardspace)

.NET 3.5 comes with following brand new features:
*LINQ (Language Integrated Query)
*ADO .NET 3.5 with Entity Framework
*ASP.NET 3.5

Location of .NET 3.5 Specific Assemblies

December 23rd, 2007 | Posted by Vidya Vrat in .NET - (0 Comments)

Once you have Visual Studio 2008 in your machine, the folder location of .NET 3.5 related assemblies for LINQ and ADO.NET 3.5 etc will be on a different location than the traditional location C:\WINDOWS\Microsoft.NET\Framework
of all other .NET Framework deployments in your machine

The .NET 3.5 specific assemblies can be found at the location as shown in the figure below

Recently I got an opportunity to review the .NET Preparation Kits produced by uCertify – The fastest way to IT Certification

I was tasked to review the MCTS 70-536 C# exam preparation kit titled: Microsoft .NET Framework 2.0 Application Development Foundation. While reviewing the preparation kit for 70-536 I found the methodology used to teach the concepts are very good and the concepts are covered in such a way that a beginner or a professional will be equally benefited.
Various types of practice tests helps you to be tough and well prepared when you appear for the real test. Each test covers all the concepts as per the Microsoft requirements and helps to prepare gradually and also to see your progress. I believe that this exam is one of the most usable exams as it opens the entry for three other MCTS exams as well. I personally feel, that Investing in 70-536 preparation kit available at 70-536-CSHARP – C#.NET 2.0 Application Development Foundation practice test will be an asset for any MCTS aspitant.

If you want to purchase .NET Preparation kits from uCertify then you can avail 10% discount as being my blog reader. Provide the discount code “VVRAGA” during your online purchase order when asked and enjoy the .NET Preparation kits to help you achieve your desired Microsoft certification.

Lets also have look at the user friendly and easy to use dashboard of uCertify’s preparation kits.

Code Names

July 1st, 2005 | Posted by Vidya Vrat in .NET | C# | Visual Studio - (0 Comments)

Thunder – This was the code name for one of the Most facinating RAD tool Visual Basic(VB).
Lightning – This was the code name for .NET CLR(the most adorable one).
Everett – This was the code name for Microsoft Visual Studio .NET 2003. Everett is a city north of Seattle.
Whidbey – This is the code name for Microsoft Visual Studio .NET 2005. Whidbey is an island north of Seattle (you go through Everett to get the ferry to Whidbey Island).
Yukon – This is the code name of the next version of Microsoft SQL Server, with SQL Server 2005 “Yukon” developers will be able to leverage their existing skills in writing .NET-connected software using the Common Language Runtime (CLR) built into the database engine.Yukon is a place in Northern Canada!
Longhorn – This is the code name for the Next version of Microsoft’s 64-bit Windows operating system. Longhorn is a bar close to Whistler and Blackcomb ski resorts.
Orcas – Visual Studio .NET 200X code named “Orcas” will support the managed interfaces, enhanced user interface features and other new capabilities the Longhorn operating system will offer. Orcas is an island in the San Juan group of islands even further north of Seattle.

COM Interoperability

July 1st, 2005 | Posted by Vidya Vrat in .NET | C# - (0 Comments)

Using .NET Assembly from COM Client
This article explains about the .NET Interoperability with COM.

Step 1: Creating a .NET Assembly Project

1.1 Visual Studio .NET IDE -> File -> New Project ->
Visual Basic Projects -> Class Library

1.2 Name the Application, for instance NetServer, this will
be our .NET Assembly Project,which will be consisting of at
least one class called Class1.vb.

1.3 Rename the class to NetClass from properties window and manually
in code window.This class will hold all the functionality of .NET Component,
in the form of few functions.

Step 2: Adding Functionality

On the path of achieving COM Interoperability, Microsoft .NET
offers an attribute named ,which is
located inside the Micrsoft.VisualBasic namespace
and it makes the .NET Class available for use by a COM Client.

It’s also a wise choice to add System.Runtime.InteropService namespace to the class, which offers various features to be used.

The figure below shows the whole Code of .NET Assembly.

Step 3: Set Property for COM Interoperability

Select NETServer project from Solution Explorer, Right Click ->
Properties -> Configuration Properties -> Build -> Check on
Register for COM Interop after setting the property, do Build The Solution. It will create
a NetServer.dll (assembly) in your applications \bin folder.

Step 4: Deploying for COM access

A .NET assembly which has been created can’t be used by a COM Client,
because COM Client can access an object with help of a Type Library,
which tells to the Client about the Object.

In .NET world there is no such concept of Type LIbrary, but because of
COM Interop feature, .NET Framework SDK offers a tool called
RegAsm.Exe which offers to make a type library and
register it in Windows Registry, the very own style of COM.

4.1 Access Command Prompt (cmd)

4.2 Change the path to your application folder
for example : C:\>D: press enter
D:\> cd Net Applications\NetServer\Bin
D:\Net Applications\NetServer\Bin>

4.3 Type the following command to create a
Type Library,which is a COM world’s buzz word and equivalent
to Metadata of a .NET Assembly.

D:\Net Applications\NetServer\Bin> RegAsm /tlb: NetServer.tlb NetServer.dll

This command will create a Type Library named NetServer.tlb
in the \bin folder of .NET Assembly application. Which was
automatically registered in Windows Registry as well.

Now the .NET Assembly is ready to use by a COM Client.

Step 5: VB 6.0 Client to access .NET Assembly

5.1 Open Visual Studio 6.0 -> Visual Basic 6.0 ->
File -> New -> Standard.Exe

5.2 Drag one Label and two Command Buttons onto the form.

Step 6: Set Reference to the Type Library

Before consuming the class you build using .NET

Project -> References -> Find the NetServer and select that.

Step 7: Code to access the .NET Class

after adding the code, run your VB 6.0 and click on the command buttons, you will see that your application communicating with .NET Assembly.


What .NET is all about?

October 5th, 2004 | Posted by Vidya Vrat in .NET - (0 Comments)

It’s a new Object Oriented Paradigm from Microsoft.

.NETwas released in July 2000 in a PDC (Professional Developers Conference) Orlando Florida, where Bill Gates revealed the details of their new platform called NGWS (Next Generation Windows Services).

What is .NET?

*  It is a framework, which offers new Object Oriented programming paradigm.
*  Is a layer between the operating system and the programming language
*  It supports many programming languages, including VB.NET, C# , C++ .NETetc.
*  .NET provides a common set of class libraries, which can be accessed from any .net based programming language. The language does not matter, you can write code in any .net language!!

What .NET is Not?

*  .NET is not an operating system.
*  .NET is not a programming language.

“.NET is a framework”

.NET is a common Language Neutral platform for all the supported languages known as .NET compliant language. It gives a common class library known as Base Class Library (BCL) or Framework Class Library (FCL), which can be called from any of the .NET supported languages. So, developers need not to learn many libraries when they switch to a different language like earlier MFC, ATL and Win32 API etc. Microsoft .NET offers common Library (BCL) and only the syntax is different for each language, where as all the languages can share the same features.

When you write code in any language and compile, it will be converted to an ‘Intermediate Language – IL or MicroSoft Intermediate Language – MSIL. So, the compiled executable contains the IL and not really executable machine language. When the .Net application runs, the JIT (Just In-Time) compiler of .NET framework on the target computer take care of the execution. Note: To run a .NET application, the target computer should have .NET framework installed.

What is Visual Studio .NET?

Visual Studio is not a new concept it has been around for many years, Visual Studio 6.0 is a development tool which has fascinated almost every programmer on the planet earth.

Visual Studio .NET is just another version of Visual Studio designed to write .NET applications. VS.NET is not a must to write .NET application. Notepad can be used to write an application and can be compiled by using .NET command line compilers (Csc/Vbc) which are freely available with .NET Framework SDK, after compilation result can be seen on console.

.NET supported languages

Currently .NET supports the following languages:
*  C#
*  Managed C++ .NET
*  J#
*  Jscript .NET

The above languages are known as Microsoft .NET compliant languages. Whereas Many third parties are writing compilers for other languages with .NET support for example COBOl, Pearl, Python etc.

Difference between VB and VB.NET

There is not much in common between VB and VB .NET other than the base name. VB.NET is a totally new programming language. It just retains the syntax of old VB. So, if you are a VB programmer, probably you may like VB .NET than C# just because of the syntax and case sensitive nature.

In addition to this, VB .NET still supports many of the old VB functions just for backward compatibility. Microsoft .NET also provides Upgrade Wizard to migrate VB 6.0 applications to VB .NET.

C# or VB.NET? Which one to choose?

It’s very difficult to state which one to choose, the choice actually depends on an individual’s choice and programming experience.Where as in reality .NET Framework itself has no discrimination between the languages.

VB .NET has backward compatibility with old Visual basic VB 6.0. and C# is a fresh, clean language.

Is .NET platform independent?

No, but it is Language Independent. Microsoft wrote .NET Framework with a vision of Language Independence to be offered to all the programming languages. I.e. all the languages can communicate means interoperable.

As .NET has attracted many programmers from different technical planets, are taking advantage of .NET, Linux has .Net implementation named mono, which met ECMA (European Computer Manufacturers Association) standard what C# is based on.

Future of .NET

As it is an awesome programming paradigm which offers all the features of a language and easy access to OS and machine resources. Many programmers are taking advantage of this new product of Microsoft and shipping their software codes with an increased productivity and ease.

Microsoft is moving all its technologies to be .NET based or .NET related. The next version of SQL Server (code named – Yukon) even supports writing stored procedures in .NET languages. The .NET runtime will be part of all Operating Systems by default. Like already it has been shipped with Windows 2003. There are some other great .NET products about to ship, code named Whidbey (Visual Studio .NET 2005), Longhorn and Orcas (Visual Studio .NET for Longhorn).

Q/A: What .NET Means

September 29th, 2004 | Posted by Vidya Vrat in .NET | Visual Studio - (0 Comments)

What is Microsoft .NET?


. NET is the Microsoft solution for XML Web services, the next generation of software that connects our world of information, devices, and people in a unified, personalized way.

. NET technology enables the creation and use of XML-based applications, processes, and Web sites as services that share and combine information and functionality with each other by design, on any platform or smart device, to provide tailored solutions for organizations and individual people.

. NET is a comprehensive family of products, built on industry and Internet standards, that provide for each aspect of developing (tools), managing (servers), using (building block services and smart clients) and experiencing (rich user experiences) XML Web services. .NET will become part of the Microsoft applications, tools, and servers you already use today—as well as new products that extend XML Web service capabilities to all of your business needs.

What is a .NET experience?


The Microsoft .NET experience is a dramatically more personal, integrated computing experience using connected XML Web services delivered through smart devices.

  • Personal and integrated experience. In contrast to silos of information divided by provider, .NET experiences are centered around the user, integrating their data and preferences into a single application.
  • Connected XML Web services. Through the use of XML and SOAP, a range of services tailored to the needs of the user can be fed into a single, integrated experience.
  • Interactions delivered through smart devices. Users experience .NET through their interactions with smart devices. Smart devices are Web enabled appliances, such as personal computers, handheld computers, and smart phones, with software that makes them more intelligent in their interactions with users, the network, information, other devices, and services.

What is an example of a .NET experience?

A .NET experience is analogous to a user’s interaction with a current standalone application, with three important differences, described through this example:

Imagine you wanted to turn up the heat in your house while you were away from home. You could use a .NET experience that controls your household utilities through a smart device. The device you use could be your desktop computer while you were at the office, your smart phone while you were driving to the grocery store, or a kiosk while you were shopping for dinner ingredients.

The uniqueness of the .NET experience in this example is:

  • Each of these devices generates a different interface for the .NET experience. The desktop computer might present a graphical map and accept mouse input. The smart phone could give you verbal options and ask you to push a button to specify your choice. The kiosk may have a touch screen and a small set of temperature options. You’re using the same .NET experience to perform the same task, but you see a distinct interface, which is appropriate to the device.
  • .NET experiences are location-independent. Taking advantage of the strengths of both locally-installed and Web-based applications, .NET experiences can be accessed both online and offline. In the previous example, you could use a .NET experience no matter where you are: at work, in the car, or at the store.
  • .NET experiences are personalized. .NET experiences read a user’s preferences and profile information, stored in building block services, and automatically incorporate the user’s information and preferences into what’s being presented. In the previous example, when you’re turning on the heat, the .NET experience already knows where you live, based on your log-in ID. You don’t need to enter an address.

How manageable is .NET?


Microsoft has many tools and technologies designed to make .NET technology manageable—now and as applications evolve. The reliance of XML and SOAP as underlying technologies for .NET ensures greater system interoperability between systems, improving the management of applications and services.

Current technologies and products include:

  • Microsoft Windows® 2000 Server to manage directory, events, and distributed clients.
  • Windows 2000 Datacenter Server for guaranteed reliability.
  • Microsoft SQL Server® 2000 to manage XML data.
  • Microsoft BizTalk™ Server to manage events, processes, and contracts across diverse systems.
  • Microsoft Application Center Server to manage clusters.
  • Digital Rights Management (DRM) for managing authorization of content.
  • Universal Description, Discovery, and Integration (UDDI) to promote XML Web services to third parties.

How scalable is .NET?

Through the use of .NET server technology—the ability to reuse and update XML Web services on the fly as well as distributing computing power across multiple devices—.NET offers a highly scalable solution.

  • Scale out with Windows 2000 Server, SQL Server 2000, and Application Center 2000.
  • Scale up with Windows 2000 Server and SQL Server 2000.
  • Use smart devices and XML Web services to break the linear scaling dynamic. By distributing computing to the edge of the network (where there is an abundance of computing power), the bottleneck of server processing power can be removed. By making it simple for the services which are the building blocks of applications to be distributed anywhere on the network, other bottlenecks can be eliminated or minimized, as well.

How does .NET address security and privacy concerns?


.NET will provide strong privacy protection by placing users in control of their own data. Users will dictate which people and applications can access or alter particular pieces of their personal data. These permissions are associated with binding privacy policies which outlive specific transactions.

Effective security requires a combination of secure software and good operational practices, physical security, and license agreements. Some of the current and upcoming software security programs and technologies that are part of the .NET solution include:

  • Windows 2000 for Kerberos, the Microsoft Active Directory® service, PKI, EFS, and IP Sec.
  • Building block services for simple, private, and secure experiences with full user control of the data they own.
  • XML messaging interfaces on the building block services, which enable auditing and accountability.
  • Digital Rights Management (DRM) for authorization of content.

Why should developers choose .NET instead of other XML solutions?

Microsoft .NET technology delivers the following unique benefits to developers:

  • It’s easier, faster, and less expensive to build and integrate XML Web services through .NET tools (.NET Framework and Microsoft Visual Studio® .NET).
  • The user experience is richer and more compelling because of smart devices and information agents.
  • The .NET experience is personal and manageable because of identity-centric building block services.
  • It’s built from the ground-up for the next generation of software with XML at the core.

What are the benefits of the .NET programming model and tools?


.NET Framework offer the following benefits to developers:

  • Best, fastest and least expensive way to build XML Web services
  • Programming model designed from the ground up for XML Web services
  • High productivity, multi-language environment for building and running XML Web services
  • Secure, scalable, high-performance execution
  • Multi-device support. Through Visual Studio .NET and the .NET Compact Framework, developers can use existing skills to create solutions for a wide range of devices.

Why does .NET employ XML?


XML is the common language of data exchange on the Internet. It provides a widely-embraced, open standard technology for data exchange and transformation, overcoming barriers to application and service interoperability and integration.

What’s the difference between an XML Web service and a Web site?


Unlike Web sites, which are pictures of data designed to be viewed in a browser by a person, an XML Web service is designed to be accessed directly by another service or software application.

XML Web services are reusable pieces of software that interact programmatically over the network through industry recognized standards (XML and SOAP). XML Web services can be combined with each other and other applications to build intelligent interactive .NET eperiences.

What are “smart devices”?


.NET uses software for smart devices to enable PCs, laptops, workstations, smart phones, handheld computers, Tablet PCs, game consoles, and other smart devices to operate in the .NET universe. A smart device is:

  • Smart about you. A smart device uses your .NET identity, profile, and data to simplify your experience and is smart about your presence, allowing tailoring of notifications in response to your presence or absence.
  • Smart about the network. A smart device is responsive to bandwidth constraints, provides support for both online and offline use of applications, and understands which services are available.
  • Smart about information. A smart device allows you to access, analyze, and act on data anywhere anytime.
  • Smart about other devices. A smart device discovers and announces PCs, other smart devices, servers, and the Internet; knows how to provide services to other devices; smart about accessing information from the PC.
  • Smart about software and services. A smart device presents applications and data optimally for form factor; enables input methods and connectivity appropriate for great end-user interaction; consumes Web services using XML, SOAP, and UDDI; and programmable and extensible by developers.

How do servers fit into .NET?

Microsoft offers an integrated suite of servers that provide secure, scalable high-performance execution for the Enterprise and XML Web services. Because they are designed for deep level support of XML, they offer the best and least expensive way to run and manage XML Web services.

What is the role of Windows in .NET?

Microsoft Windows currently powers the ultimate smart device: the personal computer. Microsoft Windows XP will be able to consume XML Web services, such as photo services, as well as utilize XML Web services to publish to the Web. It will act as a hub for smart devices and interact in the next generation of peer-to-peer computing, real-time communications, and media services.

Microsoft Windows .NET Server 2003 will include built-in support for XML and SOAP and will ship with the .NET Framework.



Introduction to .NET

September 1st, 2004 | Posted by Vidya Vrat in .NET - (0 Comments)


The .NET Platform consists of a set of technologies and tools designed to simplify development of distributed applications, including Windows applications, Windows services, console applications, and Web services. The .NET Platform also helps you to build applications using a collection of Web services and supports the existing Internet infrastructure such as Hyper Text Transfer Protocol (HTTP), Extensible Markup Language (XML), and Simple Object Access Protocol (SOAP).

The .NET Platform provides:
• A consistent programming model
• Multi-language support
• Easy migration from existing technologies

Components of .NET Platform

The following are some of the key components of the .NET Platform.
• .NET Framework
• .NET Compact Framework
• Visual Studio .NET
• Visual Studio Tools for the Microsoft Office System (VSTO)
• XML Web services

.NET Framework

The foundation of the .NET Framework is based on the CLR. The CLR manages the execution for all .NET-based applications. The CLR provides a common set of services to the applications that you can develop by using any of the .NET compliant languages. A .NET compliant language adheres to a set of common standards defined by the Common Language Specification (CLS). The CLS standards form the basis on which the common type system provides a set of common data types that can be used across all .NET programming languages.

.NET Compact Framework

The .NET Compact Framework is derived from the .NET Framework architecture. The .NET Compact Framework provides a hardware-independent programming environment to devices that have limited system resources such as pocket PCs and mobile phones, and other custom devices with Windows CE .NET operating system.

Microsoft Visual Studio® .NET

Visual Studio .NET provides an integrated development environment (IDE) and key technologies to simplify the creation and deployment of .NET Framework–based applications. The .NET Framework–based applications are Windows-based applications, Web applications, and Web services.

Visual Studio Tools for the Microsoft Office System (VSTO)

With this new technology, you can write managed code for Microsoft Word and Microsoft Excel®, which responds to events within the automation models. While the Visual Basic for Applications (VBA) and COM-based automation will continue to be supported in the .NET Platform, VSTO provides you the complete power of the .NET Framework, including a familiar coding experience that includes F1 Help support, full-featured debugging, and IntelliSense in the Code Editor. You also get full use of managed controls, improved deployment and maintenance of solutions, improved security, and the ability to consume and expose Web services directly from Office programs.

XML Web services

An XML Web service is a software program that can be accessed by applications locally and remotely. One of the primary advantages of the XML Web services architecture is that it permits programs written in different languages and on different platforms to communicate with each other. This multi-language communication uses unified class libraries, intermediate language and the dynamic execution environment of the CLR. An improvement in the XML Web services now is, that the XML Web services work with standard Web protocols—XML, HTTP and TCP/IP. XML Web services use SOAP as their communication protocol. SOAP is a specification that defines the XML format for messages. XML Web services are described with a Web Services Description Language (WSDL) file to allow interoperability between programs, regardless of the language and the platform. A WSDL file is an XML document that describes a set of SOAP messages and how the messages are exchanged


Many technical people have the dilemma at some stage in their technology career, whether they should choose a technological role, like Lead, Architect and so on or Managerial role like PM.

In my view all the roles are good and have many great career opportunities. But it’s up to you do decide what you want to become and what steps you have taken to fulfill your career aspirations.

Define your own Career

In my view, it’s up to an individual to plan his/her career. It may happen that you are influenced to accept the role that you didn’t want to take. I believe that, rather than being influenced by someone, you should develop the skills to influence others and put you into that role.

 Any organization can define your Job, but only you must define your Career

 Job Vs Career

Many people don’t understand the difference between the two and that’s a very common thing. Let me help you.

A career is the pursuit of a lifelong ambition or the general course of progression towards lifelong goals that provides you a sense of fulfillment and comes out of you naturally with all your passion and creativity. Besides, you get paid well while doing that.

A Job is just an activity through which an individual can earn money. It is a regular activity in exchange for payment. But you have no passion for that work, it doesn’t matter if you don’t do that for a few days. You don’t miss it and you don’t seek any areas of improvement in that.

Situation Trap

Many times people are influenced to become what they never wanted to be. In my long tenure in the IT industry I have learned that most people just accept a role because their manager told them to slide into that role and then that becomes their career path.

I am not saying that it’s totally wrong. I have been into such situations and I did all I could to detour from that and return to the right track and keep moving towards where I wanted to be.

“So it’s not always people who drag us into a situation; it’s us who must come out of it.”

How to come out of Trap

I get many emails and messages from people saying that their employer is forcing them to become a test engineer, handle a team, work on maintenance and many other off-track tasks that they have no interest in.

Now, in many situations you can’t avoid it, because you need a job and money and this is a bitter truth of life. However, the key is what steps to take to get out of it.

  1. Before accepting such role/assignment, discuss the duration with your manager and so on.
  2. Provide yourself limited time to come out of that and share that with management; have it in writing and include HR also if you can. In many cases the company will say 2 months but you dragged yourself for 2 years in that.
  3. If nothing works then it’s time to move on.

Deciding Whether to Move On

In general, people look out for options when they are frustrated and not prepared at all. Being not prepared causes a delay in getting shortlisted for jobs in the industry and this causes further frustration. People often end up in the same place and doing the same thing.

In my opinion, changing a job needs to be well-planned, unless you are lucky that you have the tendency to land into the right opportunity every time.

The following procedure will help you.

  1. Your decision to move must be driven by motivation rather than frustration.
    I have observed that many people just wait until appraisal and soon after that they look for a job change. Well, this is right, since as I said above, due to the need for money, but money is not everything all the time.
  2. Always have your resume/cv ready and updated, I still do that. I continually update it for the projects I do and new skills I develop.
  3. Have a LinkedIn profile, you can’t build it overnight. Seek good like-minded connections.
  4. Continue applying for jobs, even when you don’t want to change immediately. So you know if your CV / resume is getting some traction in the job market or not.
  5. Also focus on non-technical skills and continue to refine skills like communication and presentation and so on.

Techniques to work on your career goals

  1. Have a road map in place that defines all that is expected from your desired role.
  2. Think global, people often only focus on job-related skills that are local to their country. This again can’t help you to build a career.
  3. Invest in learning the right technical / non-technical skills.
  4. Find a mentor who can help you elevate yourself, preferably who has done it by him/herself. Learning from people who havn’t experienced what you want to be will lead you nowhere.
  5. Invest in learning, skills building and the right type of social networking.
  6. Your current job is the best place to learn and experiment with new skills you are building.
  7. Make yourself visible at the organizational level.
  8. Have a reputation in your company.
  9. Have a command of the English Language. You must be able to learn, listen, speak, read and write in English. You can read my article on 10 Rule of English Communication for Developers.
  10. Seek for opportunities and meet like-minded people.

What I do to take charge of my career

  1. Always focus on your career goals.
  2. Work on cultivating skills for that role
  3. Invest in learning
  4. Apply your learning and skills
  5. Set Targets

Always focus on your career goals

Let’s say you are a developer and you want to be a Tech Lead, or a Tech Lead wants to be an Architect. Then you need to understand what the industry expects from that role, regardless of what people tell you to be or become.

Work on cultivating skills for that role

You need to understand that each role requires some specific skills and personality traits and that’s why some people are in Sales, Marketing, Management, Technology Leadership and so on. They all have their own place and I believe that is what they always wanted to be.

But at least we need to try what we want to become, after knowing what we want. We need to start working on those skills, whether technical or non-technical. Be aware that each role in the industry expects some different level of technical knowledge and different personality and behavioral traits in a candidate. This is how people are offered positions like a Dev, Lead, Architect, Project Manager and so on. I highly recommend a proper road map for your desired career path.

Invest into Learning 

Investment in learning gives the highest return, not always in terms of salary but how people look at you and what perception they have of you. Every year I spend a good amount of money on books, courses, certificates, conferences and so on and many other things that keep me polished, sharp and competitive with the latest industry trends in my area of technology and career aspirations.

My latest accomplishment was the TOGAF Certified Architect level. This certification exam itself costs anywhere between US $495 – $640. What I want to share is that even after having so many Microsoft and other certificates I didn’t stop. Well, this is my personal thing and perhaps someone will find motivation from it. That’s’ all.

Apply your learning and skills 

After you have learned what the industry seeks in a candidate of your desired career goal then look for such opportunities to apply those skills. For example, a tech lead role demands the following:

  1. Participate in technical discussion with client and onsite manager
  2. Perform code review and resolve the team’s technical queries.

Now, if you are just a developer then start learning these things and see if you can either shadow or pair with your lead or silently observe how someone is doing it. Then look for the opportunity to do this by yourself. Make sure you don’t make a mess of a client call, so take it slowly.

Set Targets

You need to be a goal-oriented person, so set targets for yourself and ensure you are working on those goals, for example:

  1. In the next 30 days I will learn to communicate in English.
  2. In the next 15 days I will learn to kick off client calls.
  3. In the next 30 days I will make a sample application using MVC concepts.
  4. In the next 60 days, I will apply for jobs and see the response from companies/recruiters.

So, now you have a plan but remember “Plans won’t work until you work on the Plan”.

Don’t seek comfort

Sometimes, people think my job is all good and I am all set to be here as long as I want; you feel like you have just settled in. My last job was for 8.7 years in the same company. But I made sure that I kept moving and I made quite a shift in the organization that required similar efforts in terms of learning, applying for a job and being interviewed. I made my own way and made progress towards my career goals.So if you really interested in getting promoted and receive new shiny titles on your promotion letters and experience letters and so on then you must work hard, regardless of whether you are seeking that change within or outside the organization.

So always be restless, seek knowledge and motivation to get closer to your career goals and keep learning.

Best Wishes.