5.19.2013

Career as a .NET Consultant for Non-Degree Hopefuls

Neil deGrasse once famously said that science is not about simply memorizing facts only to spit them back during exams or to turn into a science parrot. I share the same view on IT and couldn't agree more with Neil.

We would be making a huge mistake if we evaluated candidates solely on their performance with their degrees. Memorizing a bunch of programming or technological facts and theories will turn one into an IT theory memorizer, while hands-on experience will create a true IT literate.

I bet when food connoisseurs judge a chicken entrée, for example, they go after the presentation, taste and visuals rather than the chicken's ability to dance or sing opera. Similarly the goal of any job is to get it done within deadlines and using the most efficient algorithms possible.

When I look for IT consultants, I specifically look for IT literates who carry a passion for what they do and can get the job done. I have hired high school grads with at-home experience who did a better job for me than most associate or bachelor degree holders. It could also be that non-degree holders felt like they had to work harder to prove themselves.

I am in no way trying to undermine the importance of a proper education, degree and credentials (I, myself, am planning to go for my PhD). The primary purpose of this post is to encourage all those without a computer degree to learn, experiment and see if IT is their cup of tea. I tried programming when I was 9 and I have been hooked since.

Programming Packages

IT consulting as an application developer always requires a mix of technical knowledge and not just one single language. Hence, if you are thinking about consultancy, you'll have to learn your primary language and then everything else that comes as part of that programming language package.

For example, during my high school year I started my career as a simple web developer with the knowledge of HTML, Java script, CSS and CGI. I then moved towards consulting as a PHP developer on a part-time basis. Being a PHP developer, my expertise was in LAMP (Linux, Apache, MySQL and PHP). You can think of LAMP as a programming package for PHP programming. My job as a PHP developer did not require me to work on the Apache server or configure Linux on a regular basis, but I needed the knowledge to be able to look in all the right places should a problem arise.

The point is to learn multiple things in order to be successful at a particular job. In this post I will discuss the ASP.NET programming package path.


ASP.NET (Web forms) Consultancy

As the name suggests, an ASP.NET consultant is one who specializes in developing programs, projects or websites using ASP.NET. The .NET language has two main types - Web and Win forms respectively. Win forms is all about "windows based" development (e.g. like developing a calculator), while Web forms is all about developing websites.

Here are some of the most important skills for any ASP.NET programmer:

Skill
Notes
HTML & CSSHTML is the markup language used for developing webpages. The CSS is the code used to style and format the webpage.
Software development lifecycleA typical application project goes through phases like planning, outlining the specifications, design & analysis, development and testing. This whole process is known as SDLC or software development lifecycle.
Web site hostingThis is the understanding of how the websites and domain names work and what kind of tools one need to launch a site.
IISInternet Information Services (IIS) – formerly called Internet Information Server – is a web server software application by Microsoft that helps manage and serve the websites from a local computer to the outside public.
Knowledge of OOP (Object Oriented Programming)OOP or Object Oriented Programming is a type of programming language which makes use of "objects" in its algorithms. Famous OOP languages are C++, C#.NET, Java, PHP, Visual Basic.NET
ASP.NET (C# or VB.NET)ASP.NET is a Web application framework designed for Web development. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. Within ASP.NET there are two frequent paths taken: C# or VB.
Knowledge of a relational database - MS SQLA database is a structure where you store information. Famous relational databases are Microsoft SQL Server (MS SQL), MySQL (Usually used with PHP) and Oracle.

Regular universities teach these skills by taking students through a variety of courses like Java, C, C++ and concepts like Object Oriented Programming.

Below is a list of sources that non-university students can consult and learn on their own for free.

Skill
Notes
Source
HTML & CSSW3School provides excellent tutorial on HTML and CSS. Follow the link to W3School to check their chapters on HTML. You can write HTML code in notepad and save it as an HTML file and open it in a browser.w3schools
Software development lifecycleYou will learn more about SDLC as you advance in your programming skills. However, for sake of learning and having an idea, the link is provided to a tutorial blog. What is SDLC
Web site hostingThe best way I learned about hosting was through purchasing my own hosting account through hosting providers like Godaddy, M6 and 1&1.
ASP.NETYou will need to download Visual Studio to learn and practice ASP.NET. The best websites to learn ASP are YouTube, W3School and ASPNet.
Knowledge of a relational database - MS SQLUnderstanding databases is very important because you will need them to save your data. I like the ASPnet site for MS SQL tutorials.ASP NET

Here are some suggestions on honing your skills:

  • Don't wait for landing a job to gain experience. Instead, start your own website or some kind of a complex project which can be showcased on your resume.
  • Offer volunteer work to local businesses, churches or any company you know so that you can use it as experience on your resume.
  • Continue practicing and learning new concepts. If your financial situation allows, take small certificates.
  • Keep an eye on eventually completing an associate degree if not bachelor.  Build connections during any project you do so that you can use them as a reference.
  • Keep a documented list of projects you have completed. I have seen many experienced applicants fumble the question "tell me about some of the projects you have worked on."
  • Get in the habit of finding a solution on your own. Employers love the go-getters and solution finders. You can be asked "Tell me about a situation when you had to complete a project using tools or skills you never worked on before."

Reality Check

You should build a portfolio of your work to prove your expertise during interviews. You will also have to work harder than those who bring degrees to the tables. Nevertheless, if you are really good at what you do, you will definitely be able to land consulting jobs. You can also benefit from consulting companies like Tek Systems, Robert Half, Comsys (Experis) etc.

While temporary consulting is not an issue, getting hired permanently will still be a problem. In today's world, an associate, bachelor's or master's is a requirement for the majority of the IT positions.

My advice is that you get started in the field at an appropriate rate and save some money. Once you have a little bit of a wiggle room financially, go for some kind of a degree. You also have the option of attending online universities.

Bottom Line

Designing, programming and developing is like math. You can learn all the concepts and formulas you want but what would make you valuable is your ability to apply those formulas to fix problems that you may have never seen before.

IT is also similar to math in sense that you either use it or lose it. So go ahead and play with the tools, find out if you like it and never stop practicing. The biggest downer in the interviews I conduct is if I see a particular skill listed on the resume under the expertise but come to find out that the last time the applicant used it was 3-4 years ago.

Don't worry about the money. The money and wealth is only the after effect of you loving what you are doing and being good at it.

Good luck and happy programming!

 

0 comments:

Post a Comment