views:

106

answers:

2

Hi All,

I have recently started applying for .Net jobs. I currently work in a sales role with a large telco. I found out quite late that I like programming and as such bought my house and made commitments that mean college is not an option.

What I would like to know is, is it harder to get a junior job as a self learner? I have gotten a few enquiries regarding my C.V but nothing concrete yet. I try to be involved in projects as I get the chance and tend to put up any worthwhile projects as I develop them.

Some examples of my work are:

A Xaml lexer and parser: http://www.xlight.mendhak.com

A font obfuscation tool: http://www.silverlightforums.com/showthread.php?1516-Font-Obsfucation-Tool-ALPHA

A tagger for m4a: http://projectaudiophile.codeplex.com/SourceControl/list/changesets

I, of course think that these are great examples of my work but that is my opinion based on self learning. The other query is how much should I actually know? I've never used linked lists but I know that strings are immutable and I understand what that means. I am only touching on T-SQL but I understand things like how properties function in IL (as two standard methods :) ). I suppose I understand a lot of concepts but specific features need some looking up to implement as I may not know the syntax off the top of my head.

+1  A: 

Try to be involved in a community project, You should learn some design patterns, and the use of some other skills (SQL, Object Oriented Design, maybe wpf/wcf)

the best way to get into a programming job is to have one... you need experience, and once you get it it will be easy to find a job.

Dani
+2  A: 

I can understand your desire for a "peer review" really well, I've been (or am) in a much similar situation.

I have taught myself programming C++ and did some (rather small) projects in my free time. I was lucky to find a job in a nearby accounting firm where the former developer left them with a LOB application that was a total mess. I had never written a single line of "real business" code before and was only 16. But I managed to learn about their business problem and .net, Eventually I ended up rewriting the application as there was no way it could ever satisfy their requirements.

Of course I'm asking myself today why the hell they'd trusted me on this project, which really is a critical asset for the part of the company I'm working for. Saying this, I can imagine it can be really tough to find a job with no experience and no formal education in computer science. I started as kind of a "student job/stand-in",so that's probably your best bet. On the other hand, your experience in a sales role can be a real bonus if you find a job that requires this domain knowledge (e.g. writing a CRM system).

This were my two cents on the job question. Another aspect I want to point out is that I think it's really important you try to constantly improve your skills (no matter how experienced you are).

When I started my first job, I was working alone for almost 2 and a half year. The biggest issue for me was that I had no chance to get some feedback or peer review in the form of "is it good what I'm doing here, will I run into issues with xyz?".

I consider getting involved on stackoverflow has been the biggest boost to my "career" that could have possibly happened. There's simply too much I would have to mention trying to explain how stackoverflow contributed to my personal development. So here are, mixed with some general comments, the most important things I've learned in my "self-taught career" thus far:

  • Asking concise and concrete questions in written form benefits your ability to express problems. I can't overemphasize how important it is to learn how to express problems precisely, especially for a programmer.
  • Getting involved in a programmer community will make up for missing experience up to a certain extent
  • Writing real "business" code is much different from playing with programming exercises. While exercises are usually easy to grasp on the problem domain and it's your goal to master the solution domain, you'll experience the opposite when writing business code. Be flexible.
  • Try to learn something new every day. Even if you can't directly see how a new technology, language or programming concept might benefit you where you are now, it will definitely prove beneficial in the future in one way or another
  • Learn about the trends that drive the market and accepted best-practices: SOLID design, TDD, DDD, LINQ...
  • Learn about development methodologies (Agile, Lean/Kanban, avoid Waterfall)
  • Make contact with your local .NET user group, visit conferences and talk to other developers. Might also help you find a job
  • If possible, try to get hired on an experienced developer team. Working with someone else on a project is whole different story then doing something alone. Since 4 month my company has decided I should introduce a second developer to the project. I consider this an essential experience for me.
Johannes Rudolph
Cheers, amazing advice. Peer review is the hardest part, this is why I tend to include the source to all of my projects, at least I can get some form of feedback!
DeanMc
@DeanMc: Open Source Projects are the best way to get peer review. Working on an existing project with high quality standards is a different experience than working on your own OSS project though, as it is usually difficult to attract contributors there. Maybe join a project you're interested in?
Johannes Rudolph
I'll give that a shot, there are a few projects in codeplex that I would like to get involved in.
DeanMc