I've been developing professionally for about 3 years now. My primary job is all C#. I didn't study Computer Science at my university, so therefore I don't have a lot of the basic classes. I took some lower level CS classes, including assembly language, but no data structures. Would it be worth it to try to take a data structures course? Would it be worth it to try to learn it from a textbook on my own? At the moment my only choice is trying to take it online as the closest university is about an hour away. I feel like if I was asked questions about data structures in an interview I wouldn't have good answers. Would textbook knowledge be sufficient?
Text book knowledge is never sufficient buddy at least when you are working in the industry. Always think from the practical perspective. Data Structure is very important to understand when you are writing the code professionally. Because when it comes to professional IT developer you have to consider performance, structure of the programmer, ease of developement, impact of variuos options available etc. Only theorotical knowledge is never going to help you in this scenario.
I've been working on a bachelors program for Comp Sci. I'm taking a few semesters off as I've just had a new addition to the family and was considering working on a microsoft certification during this time. (specifically the MCTS .NET 3.5/ASP.Net certification).
I don't develop professionally though I eventually hope to. In a recent conversation with a friend of mine who is a developer whose opinion I respect, he told me that I shouldn't waste time bothering with a certification and that many knowledgeable developers view the certs as simply indicating someone who can take a test.
I know ultimately that experience counts the most when you're getting hired and I would hope to build a portfolio of projects on the side that I could demonstrate aptitude with....however at the resume level is a degree in Computer Science or a Certification in a specific platform worth more?
I guess more specifically I'm curious if this community feels the MCTS developer certifications are worth the effort?
Certifications can be viewed as simply an indication that you can take a test, but they also show that you are able and willing to make an effort to educate yourself, which is obvously a positive asset when looking for a job. However, most employers (especially in these recession hit times) view experience as the most important asset when hiring. If you have time to spend on personal projects then by all means go for a certification, but try and create your portfolio at the same time. Since you are looking into ASP.NET a good sample of your skills could be demonstrated by any web site you may create.
Just as an adjunct comment to what Richard says...
I agree that certifications are really more of an indication about a personal commitment to gain knowledge. They are after all not really 'certified' as a valid educational pathway in most areas like an official degree is, but even those you need to watch out for. Make sure you use an accredited school and not one of those graduate mills that you see advertise on TV.
However, JUST Getting a degree may not be a great option either. As many people find out, a degree is no substitute for experience, and there is lies the catch-22. You usually cannot get experience without a degree, and getting a degree without experience shows that you can read and pass a test but... well you get it from here.
Personally, I went the way of bruit force... Self employed. I started my own consulting business, ran classes on my own, did jobs that I knew I could do and studied like heck to do the rest. Interestingly enough even without having a degree of any kind until recently (just so I could teach in fact) I had found myself gainfully employed for a 10 year period of time at Intel and a few other companies that typically do not take non degreed people at all. Lucky? Maybe.
I DO HIGHLY recommend that you build your portfolio that hot only highlights every educational opportunity that you take but also highlights WORK that you have done. Just like artists carry them around, so should IT people. Examples of systems designed, problems solved, code written, papers published, etc... I also highly recommend that you keep a history (with proof) of any and all training classes and industry events that you take/attend here just to show that you are a non-stop learner. Remember, just because you get a degree does not mean you can at any time say 'I am done, know what I need and now its time to just work'... BS... Learning is a constant process that never stops. You should show that you understand and live by that constantly.
I do have alot of certifications. I started looking at them after I had a MS but wanted to continue my learning. A pHd was not really an option for me, so certifications were the direction I went it.
Certifications will NOT get you a job. I have talked to many people about this. As others have pointed out, certifications show that you can take exams and that you know how Microsoft wants the answers. For example, on database questions with a cross reference table, many/most DBA types will just put in the indexes of the other tables. Microsoft expects you to have a separate index for the cross reference. Neither is "wrong" but you need to know how to answer to pass the exams. Other people point to the "paper MCSE" that exist. These are people that have never managed a server or network but took all the exams to give them the cert. Children at the age of 10 have gotten this cert. This really makes people uncertain if you are just good at taking tests, if you cheated, or if you really know your stuff.
Could certifications move your resume to the short pile when job hunting? yes. Some people like the fact that you are working on this stuff and learning it on your own or with your company and are willing to keep you around for a formal interview.
Could certifications get a promotion? yes. I know that my certifications have helped me to get promotions in the past. I am constantly learning new things and using them in my day-to-day responsibilities.
Overally, you need to practice the topics that you are going to test on. You need to know how to really do the things they are asking about, such as localization, security, etc. Not everyone knows those topics that well. As it was suggested, build up a portfolio of things. It could be articles on CP, a website for your softball team, or some little software project that you have a passion about.
One of the things told to me while I was going for my BS. There are some things that you are going to learn that you will be using every day and those things you will memorize. The school will then show you how to find out or research the rest of the information needed. Knowing how to look things up and how to complete things is something that a formal education shows you. And it shows potential employers as well. Some people will say that even a BS is out-dated in the age of the internet and that people can do just fine without it. But without something, projects that you have done, a degree, certifications, then there is no way for me to determine if you are the kind of person who will stick around or just decide the work is too hard and will leave.
I vote for a portfolio with certifications on the side. The certifications will help you to look at other parts of the topics and do more than just what a project will do.
Disclaimer: I have taught college before as well as was used by the Microsoft learning group as a subject matter expert. So I have seen both sides of this.
Hi everyone! I work as a data management engineer but as the company is small I get to develop applications for internal use, for which I use VB .NET (don't flame me for it, I already know many of you despise VB .NET). I consider myself to be a very decent programmer in VB .NET. I also have undertaken some for-learning-only projects in ASP .NET recently. I used to have a decent command of Java, but haven't coded in Java for the last 8 years.
So, I want to learn a new language, I was thinking C++ or C#. I don't have a job requirement to do so, nor do I intend to look for a new job. I am interested in developing for mobile devices some time soon.
What do you think? C++? C#? Refresh and update Java? Or...
TIA for your input. I know my question is very subjective, but I would like to hear your answers if possible.
Since you already have a background in .NET, I strongly recommend learning C#, after which you may want to focus on picking up WPF and WCF. They will serve you well if you choose to follow the path leading to a general purpose .NET developer.
I agree with Ravi that C# should be something that you should learn as well. That is not coming from not liking VB.NET but from both a learning experience and also to follow with getting into mobile devices. You can use C# for the older Windows Mobile 6.5 and lower, C# and Silverlight support the Windows Phone 7, and C# is closer to Java than VB.NET is and that is what is used on Android devices. And actually with monoDroid you can actually code with C# for the Android and there is MonoTouch where you can do C# for the iPhone instead of Objective-C. So with C# you get the possibility of alot of mobile devices.
If you are learning a language for use rapidly, I'd probably go with C#, as the others recommend.
However, for the long term, C/C++ is a classic, so I'd recommend you learn it as background and reference information. Since the syntax of so many other languages was derived from C/C++, it will give you a real good basis for future understanding.
Of course, if you just want to learn for fun with no pressure, pick something that will warp your brain and make you think differently, like Forth, Prolog or F#. They may be somewhat esoteric and not immediately useful to you, but learning new ways of looking at things will forever enrich your career.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
It depends on what you want to do but here's what I would say. You'll pick up C# the quickest since it is identicaly to VB.NET except for syntax. C++ will take longer to learn but has less overlap in terms of it's applications than C# has with VB.NET. Plus if you learn it you'll also basically know C# since the only piece you're missing is a knowledge of c syntax (assuming you don't remember that from java). I also started with VB then learned C/C++ and C# is no problem for me.
As far as mobile devices go I don't think C# would be very usefull because windows phones are probably the only ones using it and they only have a miniscule part of the market. From what I've read Apple uses Objective C and C++. Android and blackberry use Java and C++. So I would pick one of the those 3 languages.
If your focus at some point is going to be somethign low level like embedded development then managed code is out and start looking at stuff like C/C++, machine code, FPGA stuff, etc... If you are looking at application side stuff then look at what is popular in that industry...
Keep in mind that no matter what you do on the web side, I don't care if you settle on VB.Net or C#, you are also going to HAVE to learn Java just because even in those environments you are always going to run into to somethign you will need client side Java for, or find somethign that auto-generates the Java stuff for you and you need to understand it. Java is do darn close to C# (and thus to VB also - although many will not admit it) that it is worthless to NOT know the three together.
If you are just looking for some interesting experience that you may be able to leverage at some point in the future then start looking around at some of the interesting languages that are being invented or created now... Here is a cool thing to consider.
Try building your own! I always wanted to try that...
I need another project!
Where does a civilian and non FBI /CIA electronics geek learn about ECM?
Or does monitoring and possibly interfering with unfriendly internet traffic (SPAM etc.) counts as ECM?
I hate to complain about my job considering how much unemployment there is but, is my situation normal as a first programming job?
I was hired into a technology consulting division of a consulting company. I was led to believe that I would be programming and that is my official title. The first month I went through a 1 month training program with a large number of other new hires to learn SAP/ABAP. I did do alot of programming in the training program. However, the project I was put on after the training program involves zero programming. 100% of my job is writing documentation for old programs written by other people. And none the other new hires I've met are programming either. In fact only a small percentage of the people I've met at the company actually seem to program.
I was wondering is this what your first programming job was like or is my company an abberation?
100% of my job is writing documentation for old programs written by other people. And none the other new hires I've met are programming either. In fact only a small percentage of the people I've met at the company actually seem to program.
Actually this seems to be software consultant job. In my company these people called as software consultant.
They provide requirement to programmers, anlyse the client requirement, make doumentation of the project.
100% of my job is writing documentation for old programs written by other people.
It's a long time since my first programming job, but I never had to do this. It almost sounds like a Technical Writer position rather than programmer. However, you may find that looking at others' code will help you learn more about some of the programs you work with and that could benefit you in the longer term. It's certainly something to discuss with your boss at your next review, or even earlier if you feel strongly enough about it.
My first programming job was a work placement at a local firm who where producing military avionices equipment. That was over 20 years ago and I received excellent mentoring from the Software Engineers there that has stuck with me all these years. This is what you need right now. A mentor to help you through and mostly to champion you.
I was certainly cutting my own code there and I sincerely believe you are in the wrong job and what you are being asked to do is not good for your career.
What you are really doing is the boring documentation job that original developer should have done in the first place. Yes, you are looking at some other people's code, that is what this website and other's like it are for. Right now you should be furiously coding as much as you can, building up your OWN development skills.
IMHO you are doing the programming equivalent of being the 'tea boy'. Sorry to be so blunt, but I think you knew this already.
You need to have a word with your management about what your and their expectations are of you. If they can't find problems that suit your skill and experience, then don't wait to be handed them. Invent them for yourself. Put yourself into the firing line - challenge your management - and prove that you are a DEVELOPER and can be trusted to do the serious work.
Ultimately, if the situation hasn't improved in six months time, don't faff around. Go to another firm, but be careful not to let on to what you are doing.
Final advice, since you are new to the world of software development. Never, ever stop practicing your programming and development. You will be working on your own projects at home, whatever they are. You are involved in open source projects when you have the time. Find out about new technologies and build up your technical library, don't just rely on the net. Don't neglect to learn about old technologies too, because they will inform you on the modern technologies.
Evolve with the computing industry, otherwise 5 or 10 years from now you'll find your skills obselete and you could find yourself out of IT altogether.
I was led to believe that I would be programming
100% of my job is writing documentation
If I were you, I'd bring this up with your manager and diplomatically and politely indicate your job expectations are not being met. Hopefully your manager will be able to move you to a programming position, else you may need to look for alternative employment. Be careful - if a programming position in your current company isn't available, you've basically flagged yourself as a potential candidate for being laid off.
your first programming job
My first programming job was a dream come true. I joined Digital's XCON[^] group in 1987 and was convinced I was the world's sharpest programmer. (I was a pretty good student and spent most of my waking hours writing code.) Within a few days (and about every week for the next 7 years), I met someone who showed me a nifty programming technique or a clever solution to a problem that blew my mind. DEC exposed me to life in a large software company and forced me to mature as a developer - not just technically, but interfacing with other teams, understanding software maintainability, defensive coding, end-user satisfaction, requirements analysis, etc. Don't get me wrong - all I did then (and all I do today) is 100% software development. But the ancillary skills I've picked up along the way have helped me tremendously.
I don't know where you're located, but I recommend looking for a job in a company whose primary function is software development. The experience you gain over the years will allow you to eventually move to a smaller outfit (if you so choose) and be a bigger influencer of the product or service you develop.
If a change of employment is not practical at this time, take the time (away from work) to write code. LOTS of code. Start with small utilities or maybe a game - something you know people will want to use, or even better, something that YOU wished existed that would make your job easier. The knowledge you gain by doing this will help you in the long run. And if your employer sees value in what you've built, you can expect to be taken more seriously and maybe obtain the developer position you've wanted in the first place.
Thanks everybody for your responses and advice. Since the time I posted this message a few months back I've been looking for a real programming job. I've gotten a few phone interviews but haven't landed anything yet and with the economy the way it is it might take a little while.
I had talked with management even back when I posted the first message but the truth is that the actually development is being done by another contractor the government hired. It basically is not possible for them to give me much programming work on this project cause that isn't what we were hired for. Having said that the other contracter is behind schedule and we are ahead of schedule so they are considering giving us some of the work so I might get a miniscule amount of programming work eventually.
Unfortunately, there are many companies who does the same with their employees. I was hired as a software developer in my first job. I was so excited to work everyday, even if I was always asked to carry desktop machines into their delivery trucks(By the way, the company provides hardware solutions for their clients). After a month of doing my software development job(carrying desktop machines for delivery) I got pissed off and talked to my manager. My manager said that the client who I was supposed to work to backed out because of budget. On my 3rd month, I was assigned to a client and my task was to provide support to their employees. On my 6th month, I got my first dev work. I was asked to do an online employee management system and that will be integrated on their existing payroll system. Unluckily, it wasn't finished before my end date because I was exposed to non-programming tasks for 6 months and my mind was like it needs a review before doing the application.
Moral of the story: Be sure to clarify the details of contract with the employer before you sign it, especially the kind of work that you will be doing.
Microsoft Certified Professional Developer
Microsoft Certified Technology Specialist
I am pretty sure I am missing out on something that might work better, but other things I've found focus on technologies and such that I don't use or most likely won't use. So, what do you think I should be looking at in terms of certifications?
Those are decent ones to get started with. Keep in mind that the certification exams do expire and that you may not be able to take a VB.NET 2005 exam anymore. might be a good opportunity to see if you can play with 2008 or 2010 at work since they want you to get certified.
The SQL certifications are not that bad if you have been doing SQL for a while, that is the MCITP: Database Developer and Database Administrator. I have the developer one and few others over the last 11 years. If you have any more questions about them, let me know.
Right now I got an email from Prometric that Microsoft exams are 20% off. plus you could get find some codes to get into beta versions of exams, but those are typically for the newest version of a certification.
Last Visit: 31-Dec-99 19:00 Last Update: 9-Dec-21 1:26