|
how can I get started as a professional programmer ? help me.
|
|
|
|
|
Well, you should gain a good grounding in the basics of programming. You will need to choose a language/area to learn, and try to pick up as much as possible about it. Read a lot. Try a lot of examples and read a lot more. A good education is a really good idea. With the advent of the internet, there is more opportunity for you to contribute to open source projects which are a good way to prove your coding "chops" and this helps to impress prospective employers.
|
|
|
|
|
I'm currently working for a small business of about 18 people. The company is a sole proprietorship, and the owner works here everyday. I do a combination of software development and IT, and I am the only employee here with those responsibilities, and the skills to perform them.
As you might expect, the owner and the manager know very little about development and IT. Even so, I am given very little latitude in which to do my job. The owner is especially hostile toward my solutions and ideas. However, I am generally held responsible for when things fail, even if I have specifically forewarned him of an issue that needed attention.
Is this typical of small businesses? How do you deal with bosses (or clients) who want to either micro-manage every aspect of what you do, even when they don't understand it, or ask you for results while vetoing your proposals?
As an example, I have to develop our internal software. It is a poorly designed mess of Access and VBA code, both from a business and programmer perspective. Whenever I am requested to make a change, I am never presented with the goal or problem. I am never given requirements for changes. Instead I am told what changes to implement, on the order of "add three new buttons, one green, one red, one blue!". They never seem to want to talk about what they are trying to accomplish, and get frustrated with me when I try to understand the "big picture". Often, what they suggest isn't even a viable solution.
How can I get them onto a more reasonable development model, where they present me with requirements or the business problem they are looking to solve, and I come up with the best solution, that works with our data?
One the one hand, I feel like I am paid to do what they ask me to do, but on the other hand, I feel like, as their DBA, I am also responsible for the data, and as their developer, responsible that their software function properly.
I doubt it's an issue of trust -- I have keys and full physical access to the property 24/7. They also understand that I have full access to and control of their data, even confidential data, and why I need it. They trust that I don't snoop through private records, even though I have the ability to. This is pretty usual for System Administrators.
From what I understand, this is not an uncommon small business situation. How do others deal with it?
Thanks for reading!
--Joshua
|
|
|
|
|
I have worked for small companies before. There are a couple of things to get out of the way first, in my opinion.
Are you really happy there?
My experience is that you can't make them or get them to change their minds or influence there ability to make the correct decision for any number of reasons namely they think they're right all the time. This sounds like a very controling environment. I wouldn't try and convince them. They have to want to change and mean it and that's the big part. Without that part it's pointless to try. You'll be fighting an uphill battle with no reason to.
If you're not happy, which it sounds like you're not, I'd update my resume and start looking.
|
|
|
|
|
I really do like working here. It's a very comfortable environment, almost familial. On a personal level, it's a great job. My frustration is mostly on a professional level -- and while it still happens sometimes, I try not to let the work frustrations spill over into personal frustrations. I understand they're doing what they think is best for the business, and try not to take it personally. Sometimes it happens, though.
I feel comfortable doing the technical stuff, but I feel very inexperienced dealing with management/clients. I was mostly wondering how do others deal with it? I might just be going about things entirely the wrong way. I can find a million code samples, but I can't find much on the communication side of development.
|
|
|
|
|
Arterion wrote: ask you for results while vetoing your proposals?
Show them that what you proposed could fix the problem, and throw the failure back onto them for vetoing it.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Joshua
This sounds like you're dealing with a bad case of Not Invented Here syndrome combined with a heavy emotional investment in the current systems. On one hand you're faced with the fact that company's aren't interested in rewriting code if what they've got currently works. On the other hand, you have a situation where the current codebase is becoming increasingly unweildy.
I'm not going to give you advice. Ultimately, this is your problem and you have to decide what you need to do. I suspect that you already know what you want to do, and what you are looking for is external validation of your opinion. Bottom line - it's up to you how you deal with this; whether you talk to the owner to try to understand his hostility or you walk - this is your decision and your decision alone.
|
|
|
|
|
Thanks for your straightforward reply, Pete! I really appreciate that.
I know when most people ask for advice, they are just looking for validation. I really don't know what I want to do. I'd like to try to find a way to work this out. I was more looking for tips on people skills -- something computer guys aren't always so good at. If you're freelance, how do you deal with difficult or stubborn clients? How do you handle clueless managers? Is the grass going to be any greener on the other side, or is this just one of the things you have to learn to deal with as a developer?
In the end, there may be no resolution. But I admit that I feel very inexperienced as far as dealing with business-people who are trying to get software designed. I was hoping to pull from the experience of others here. I feel completely comfortable doing the development, but it's the "people" side of things that's got my stymied. The software is the easy part, but the communication, now that's something they don't teach you!
-Joshua
|
|
|
|
|
Arterion wrote: was more looking for tips on people skills -- something computer guys aren't always so good at
I'm on the other side. I'm the business owner.
Ok - I'm going to do what I said I wouldn't and give you some advice. You need to speak to the owner and find out why he's hostile to change. It could be that he's not aware of what you can do for him - or it could be that he has a valid reason (and I suspect it'll come down to cost) why he doesn't want to reimplement things.
The only way you can move forward from this is to talk to him, and get an understanding of his opinions and reasonings. Along the way, hopefully, you'll help him to understand your position and concerns. Be prepared when you talk to him - don't be pushy or aggressive and be honest with him, and keep it friendly. Don't give him ultimatums. If he's in any way reasonable, then this could be a very productive session for both of you.
I hope this helps and good luck.
|
|
|
|
|
Take Pete's advice, what you have brought up here is what you need to say to the management. It comes down to trust, not in your integrity but in your professional competance, do they trust you to make the right design/technical decision for the organisation. This needs to be in their face, not confronting it will only deepen you problem.
BTW be prepared to move on, management do NOT like to be confronted, especially mediocre managers but if you don't do it the problem will grind your creative abilities to nothing (one of the saddest things to see). I have been in this exact position, it is the only contract from which I have been sacked in 15 years of contracting.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
i've had to deal with people like that...still do on occasion, when you tell them you cant do x or shouldnt, have good reasons, not just tech reasons(non tech people wont care), but business reasons(they care), one "discussion" i had was about poorly designed navigation on a site i was building, and this other guy was in charge of it not my normal boss, so when i told him we can do it that way he kept asking why and i told him its bad design, since he designed it he took it personally, so i changed tacts. and i told him it would hurt business(probably not but hey) and that if you changed the navigation on each page, no one would be able to find their way around hell i got lost and i was the one building it, and if noone could find their way around no one would use it, therefore no one would use the site for more than a minute, etc... it went on for while but he finally saw light and let me do the navigation correctly. luckily for me my normal boss is a dev and understands this kinda stuff.
if/when you talk to them now or in the future about changes get what they want, the probably wont know, go away and think about it, then come back with issues and put them in terms they can understand, if the code base is getting large and hard to maintain, tell them that unless you get a chance to fix it(costs money now) it will take you longer and longer to do things, the system will run slower, and more and more bugs have a chance to creep in(costs money later). most business people understand the time value of money. and they may let you do it, it ususally helps if they want some big change you can use that to help push your other ideas. and at some piont you may have to use the "this is what you hired me to do" line, or something like it..but thats a last resort.
hope any of that helps, i had to learn all that the hard way around here, i had a partner who is a tech guy backing me most of the time, and i've learnd some of it from him. you may have a tougher go of it.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
I'm in the other side of the situation:
I'm in charge of the IT and programming department of the company I work for.
Usually, when I have people working in my department I understand that they can give good ideas and ways to improve things... if they are capable to demonstrate their methods are better I'm glad to adopt them.
I don't tend to micro-manage everything, at the beginning I give them a small book on "how to do things" and then I put them on the pressure of making a small exam that ask them to solve the typical problems they will face working here and that takes more than one week to be done. After that they usually understand why we are solving those problems in that way and sometimes (not usually) they have given us fresh ways to look at the same issues.
Then the general management usually tries to reduce costs and yadda, yadda..., but this is another issue and this is not affecting the people in the IT department at all as I act as a filter here.
I guess everything depends on costs (important always), who is listening and the open minded they are...
Regarding access and the kind of problems they are proposing you I would expose it in this way:
1. There are free databases out there that work better and more reliable than access.
--- put some comparison charts here (they always help).
2. It would be faster to use.
3. Given what you want to receive from your data I could create it in a better way, easier to maintain, better documented...
Changing technologies/languages/methods is never easy and most of times we (managers) tend to stick to what we know. It is not easy to change minds of closed-mind people, but giving good arguments and showing them benefits should be enough to get at least their attention.
Good luck!
|
|
|
|
|
This is a part from my CV:
I will submit my full CV upon your request
my email is: developpeurdelogiciel AT gmail dot com
OBJECTIVE
DOT.NET Developer position in growth-oriented company offering opportunity for professional and career development.
SUMMARY OF QUALIFICATION
• Master Degree in Computer Science and Software Development.
• Certified .NET Developer with 6 years of DOT.NET experience and 9 years of total IT experience including international experience
• Project Management and Business Analysis skills and experience
• 5 years of Oracle experience (including 2 years of Oracle administration experience) and more than 5 years of MS SQL Server experience.
• General knowledge of financial sphere (including financial operations: SWAP, Currency SWAP, Forward; the work of the financial markets: Stock market, futures, Forex, etc.), risks assessment, etc.
• Excellent knowledge of full software life cycle process and hands on expertise of using Agile methodology.
________________________________________
CERTIFICATES
MCP 70-316: Developing and Implementing Windows-based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET (Candidate ID: 3636879)
MCP 70-315: Developing and Implementing Web-based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET (Candidate ID: 3636879)
ISEB Certificate in Requirements Engineering
EDUCATION BACKGROUND
1994-1999 Orenburg State University, Master Degree in Computer Science and Information Technologies
1998-1999 Institute of Innovations as the Manager of innovative projects
2006 Software Project Management course, delivered by Colin Benton with Neueda Technology
2006 Business Analysis & Requirements Engineering
TECHNICAL SKILLS
OPERATING SYSTEMS: Windows 2000/XP/2003, Unix: Solaris 9, AIX, Linux
COMPUTER LANGUAGES: C#, VB.NET, PHP, JavaScript, C++, SQL, PL/SQL, XML/XSLT, Delphi
TECHNOLOGIES: OOP, UML (Unified Modeling Language), .NET, ADO.NET, Windows Services, Web Services, .NET Remoting, COM, OnceClick, MSMQ
INTERNET TECHNOLOGIES: ASP.NET, ASP, CSS
RDBMS: Microsoft SQL Server 2000/2005, Oracle 8i/9i, MS Access
IDE: MS Visual Studio.NET 2005/2008 (Visual Basic.NET, C# (CSharp), ASP.NET)
LIBRARIES: MS Enterprise Library 2006
TOOLS: Visio (UML, etc), MS Wise, IBM Rational Rose 7.0.0, Toad, PL/SQL Developer, Quest Central, MS SourceSafe, MS Foundation Server, Crystal Report.
PM TOOLS: Microsoft Project, Project Risk, Project Expert, Construx Estimate.
PROJECT MANAGEMENT SKILLS: Estimating the scope and work that needs to be performed, Development mechanisms to acquire identified products, Developing a Project Plan, Getting commitments to the plan, Working with suppliers to acquire identified products, Monitoring progress against the plan, Identifying and analyzing risks, Taking action to address significant deviations from the plan, Taking action to appropriately mitigate risks.
BUSINESS ANALYSIS SKILLS: MOST, Recourse Audit, CATWOE, PESTLE, 5-Forces, SWOT, CSF, KPI, PID, Business Activity Modeling, Data Flow Diagrams, The cause & effect Diagram (fishbone), Requirements engineering, Requirements Development & Management, Requirements Elicitation Techniques.
FINANCIAL SKILLS: General knowledge of financial sphere, the work of the financial markets(stock market, futures, forex), rate of discount, risks assessment, stock exchange orders, futures, options, obligations, stocks, financial and trading indexes, common strategies used in trading, financial operations: SWAP, Currency SWAP, Forward, etc.
METHODOLOGIES: Agile
OTHER: Patterns
LANGUAGES
English, French, Spanish, Russian
|
|
|
|
|
Posting your CV or resume is not what the Work and Training Issues forum is for.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
And why it bothers you where I post my CV??
|
|
|
|
|
Again, don't put your post in the subject line. It can foul up the forum. These forums are not meant to post things like CV or email addresses. There is a certain degree of etiquette and posting a CV in the forum is walking close to the line.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
I've recently completed my MCAD. I also have a CIW Site Designer cert, and am looking for a job. The problem is I have no experience, so I am stuck in the no experience->no job->no experience vicious circle. Any advice on how I can escape this trap?
|
|
|
|
|
Experience can be gained on more than just going out to work. You might want to consider contributing to an open source project, or writing some articles for CP. These are a good way to demonstrate to potential employers that you haven't just sat on your ass and have actually done something practical.
|
|
|
|
|
Hi,
there's my code:
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\root\Desktop\toto.docx");
Process p = Process.Start(psi);
If word is closed, p is my process.
but if word is opened, then p is null.
I work with Word 2007.
How can I make it work ?
Thanks
|
|
|
|
|
groumly wrote: How can I make it work ?
Using the word "work" in your question doesn't make this appropriate to the Work and Training Issues forum. Please choose a more appropriate forum.
|
|
|
|
|
Ditto that.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Many adverts quote "XML" as a skill required.
What does this actually mean? Isn't this like putting "text" as a skill
Is this a buzzword just put on there by managers?
You put it on your CV because people expect it to be there, but what are they actually expecting you to know?
|
|
|
|
|
Not sure. Putting just XML is pretty vague.
JamesA_Dev wrote: Is this a buzzword just put on there by managers?
Possibly.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
eXtra Medium Large - the most popular drink size at Macdonalds.
|
|
|
|
|
Trollslayer wrote: eXtra Medium Large - the most popular drink size at Macdonalds
Perhaps they make people down that size drink at the interview as a test.
|
|
|
|
|