Thread: Hello Friends, I have a question and I needed an experienced programmer to answer me

  1. #16
    Registered User rogster001's Avatar
    Join Date
    Aug 2006
    Location
    Liverpool UK
    Posts
    1,472
    @bubba. wow thanks for some great advice there from the -other side of the desk- that is some good food 4 thought and great points in there for cover letters. in general i am interested t hear what sort o standard project may be done by final year graduate, the tech level reached compard to equivalent coding of 4year hobbyist say
    Thought for the day:
    "Are you sure your sanity chip is fully screwed in sir?" (Kryten)
    FLTK: "The most fun you can have with your clothes on."

    Stroustrup:
    "If I had thought of it and had some marketing sense every computer and just about any gadget would have had a little 'C++ Inside' sticker on it'"

  2. #17
    chococoder
    Join Date
    Nov 2004
    Posts
    515
    Quote Originally Posted by cyberfish View Post
    I'm assuming "real" software developers get paid more than $20/hr :P.
    don't be so sure...
    $20 an hour is a pretty decent salary for a programmer with severa years' worth of experience here, more than a junior would get on his first job.

    Of course that doesn't include benefits like pension plan, company health insurance plan, maybe a company car, cellphone, etc.

  3. #18
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    For me it just happened. One day I was doing night shift backups on a IBM ES9000 at my first job in Alcatel, with only self-taught programming knowledge in Pascal and DBase, the next day I was learning about programming said mainframe in Cobol.

    Didn't do it for long though. Before my experimental period finished, not knowing for sure if I was going to stay, I looked for and found a better job at a company that was looking for experienced Clipper programmers. Having only dabbled in Clipper, but because I was confident of my abilities (back then programmers were like needles on a haystack), I thought it would be a good idea to apply. I was accepted and it took me maybe a couple of weeks to get up to speed with the rest of the team.

    From then on, I became a professional programmer. I also became someone who didn't want to be a professional programmer. The profession choose me.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  4. #19
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    I used to be a youth pastor and then a factory worker. All along the way I coded into wee hours of the night doing this or that. I started way back in the DOS 2.10 days with BASIC and then moved to C++ in the early 80's. Because of this I was able to get a lot of exposure to interrupt handlers, DSP chips, DMA, VGA/SVGA, and other nasties we take for granted today. Then I started learning assembly language which really opened things up for me as far as code goes. When it came time for school I chose a different path which turned out to be something I really did not enjoy doing. For some time the members on this board encouraged me to apply for a professional programming job and b/c I was intimidated by not having an actual CS degree I didn't. Finally I grew tired of my work at the factory and just sat down one night and sent out resumes. I was completely shocked by the results. Many phone calls came in and although they were looking for P2's they were still interested in me. Finally I applied at one company and everything worked out. They even waited for my wife to have our child so I could come interview. Amazing.

    Now that I have been programming in the workplace for about 3 years I can say that my worst fear was absolutely absurd. I was only intimidated at work for about the first month or so until I realized that my vast range of experiences both in programming and management made me more than qualified for the job at hand.

    Since then I can say that moving to professional programming was the best decision I ever made. And while I can't say there aren't days where I just want to stay home with the fam I can say that the job is extremely rewarding, challenging, and a lot of fun.

    Lesson learned. Don't let anything intimidate you out of your career choice. If you are young enough and have the chance to attend university for computer science then by all means do so. However if you are older, as I was, and already have a degree in another field but have significant programming experience and knowledge then go for it.

    I can guarantee one thing....if you don't apply you won't get a programming job. The one difference between me and those that have a CS degree is I tend to think outside of the box that colleges put them in. It is the same for me when it comes to ministry. Since I was formally trained in the area I am more apt to follow what my professors told me works and what I should never do which sort of puts me in a box. Others who minister and have little formal training but just have a passion for it are often times a bit more effective than someone like me b/c they don't have the 'box'. I see this all the time in the programming field as well. It doesn't happen to everyone and some who have attended college could care less what they were told to do and not to do. But, in general, I find that higher education often does try to put you into a box or mold and later in your career as things and times change...it is often very hard to adapt.

  5. #20
    Registered User
    Join Date
    Apr 2010
    Posts
    6
    This thread is kind of silly.

    Being good at something is as much about having confidence in it as it is about experience. If you walk into a room knowing you can solve whatever problem gets thrown at you, other people will pick up on it... even if you actually can't.

    Programming isn't about languages or styles or syntax or experience. Programming is about solving problems - if you can solve a problem, you can program. In some cases, the problem you're trying to solve is "how do I implement this solution in that language?"... but it's still just another problem. Professional programmers don't care about what languages they know, and most employers don't care about what languages they know. All people care about is results.

    The short version is when you're "ready" to program professionally, you won't need to ask. Confidence has to be earned, but when it's there you'll know it.

  6. #21
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    The short version is when you're "ready" to program professionally, you won't need to ask. Confidence has to be earned, but when it's there you'll know it.
    That is silly.

    Professional programmers don't care about what languages they know, and most employers don't care about what languages they know.
    Equally as silly since every job posting requires one or more of certain languages.

    All people care about is results.
    And how do you get results when you don't know the languages?

    Programming is about solving problems
    ....in code.

    Problem solving ability alone does not make you a programmer but knowing how to solve problems as a programmer makes you a better one.
    Last edited by VirtualAce; 04-24-2010 at 03:46 PM.

  7. #22
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Bubba View Post
    I used to be a youth pastor and then a factory worker...
    I was almost moved to tears by this Bubba (happy tears, of course). Great story about bringing your nocturnal activities into the light and finding your path, dude.

    Quote Originally Posted by Bubba View Post
    And how do you get results when you don't know the languages?
    ....in code.
    Problem solving ability alone does not make you a programmer but knowing how to solve problems as a programmer makes you a better one.
    I think you have to think about a problem largely in terms of the language you are using. I know there is a lot of theoretical algorithm analysis around that is language independent, and a solution from one language almost always can be found in another* -- BUT I think the many of the "tools" you have are not conceptualized much in that theory. They tend to be real aspects of a real language or technology, not abstract components of problem solving in some vague general sense. It's easy to imagine what a great movie you could make, however, that is not most of the real work, time, and concentration that needs to happen before the movie is finished. Of course, a great idea is always a great idea.

    Either that or most of the problems I seem to need to solve have to do with a language/technology and it's use.

    * altho they can involve exploiting radically different possibilities
    Last edited by MK27; 04-24-2010 at 05:52 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  8. #23
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    I was almost moved to tears by this Bubba (happy tears, of course). Great story about bringing your nocturnal activities into the light and finding your path, dude.
    Hehe. I didn't want to divulge my entire life story but did want to encourage the OP. It almost felt like a 'one time at band camp....' story.

    Often things in life don't go exactly as we would like or envision. So I played the hand of cards I was dealt the best I knew how and it worked out. Would I like to return to school at some point to further my education? You bet. But for right now making money is working out just fine for me.

    So to the OP...go for it. Do what you can now to prepare and then start sending out resumes or applying to colleges if you are at that point in your life. And by all means come back and share with us how you are doing along the way.

  9. #24
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    As a person with little formal training on the software end of things (Started in hardware) one basic thing that helped get my foot in the door so to speak at least three times in my career was to have an example of your work handy. When I started and had no "professional" experience I wrote an electronic resume, literally a (then DOS-window based) program that when run allowed the user to see the kinds of stuff I had coded in my own time. The kicker was to distribute the source code to it along with the resume. So while I had no professional experience, I was able to demonstrate that I understood UIs (the resume itself), good clean coding practices (the source), OO (which was a big draw at the time) and so on. This allowed me to make the jump from hardware-only work into software. Yes it took a few interviews but I made it into a software consultancy.

    Later when I was trying to get to the "big leagues" (Southern California in the dot-com boom) I wrote a Windows-based version of the same thing which landed me a key position at Kinkos corp. headquarters in Ventura CA. Then many years after that I moved to an area that most employers demanded degrees, I ran an open source project on Source Forge and ran a number of articles in a known trade rag. That helped get me the gig I have today.

    Oh as for the fellow who said languages don't matter,that is bunk. If you know the secret to the universe but have no way to express it, does it really matter?
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  10. #25
    Reverse Engineer maxorator's Avatar
    Join Date
    Aug 2005
    Location
    Estonia
    Posts
    2,318
    Quote Originally Posted by Bubba View Post
    Equally as silly since every job posting requires one or more of certain languages.

    And how do you get results when you don't know the languages?

    ....in code.

    Problem solving ability alone does not make you a programmer but knowing how to solve problems as a programmer makes you a better one.
    The time it takes people to learn to solve all kinds of difficult problems and write algorithms - years. The time it takes to learn a new language which is similar to one you already know - weeks (possibly less).

    One thing I've learned so far - language is the least of your problems.
    Last edited by maxorator; 04-25-2010 at 12:46 PM.
    "The Internet treats censorship as damage and routes around it." - John Gilmore

  11. #26
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by maxorator View Post
    The time it takes people to learn to solve all kinds of difficult problems and write algorithms - years. The time it takes to learn a new language which is similar to one you already know - weeks (possibly less).

    One thing I've learned so far - language is the least of your problems.
    That's preposterous. If you want to count your infancy and childhood as time spent learning problem solving, okay. But if you are trying to claim that you spend most of your time as a programmer doing problem solving sans coding, I'm kind of curious what kind of programming that amounts to.

    The time it takes to get a basic grasp of "algorithms" as concept if you can program, and you have never heard the word "algorithm" before -- less than one day, most likely less than 1/2 hour.

    The time it takes to understand and implement a particular algorithm -- 10 minutes to two weeks.


    The time it takes to learn a new language at a basic level -- days to weeks.

    The time it takes to learn something resembling a level of expertise or mastery with a language -- months and years.
    Last edited by MK27; 04-25-2010 at 01:10 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  12. #27
    and the Hat of Guessing tabstop's Avatar
    Join Date
    Nov 2007
    Posts
    14,336
    Quote Originally Posted by MK27 View Post
    That's preposterous.

    The time it takes to get a basic grasp of "algorithms" as concept if you can program, and you have never heard the word "algorithm" before -- less than one day, most likely less than 1/2 hour.

    The time it takes to understand and implement a particular algorithm -- 10 minutes to two weeks.


    The time it takes to learn a new language at a basic level -- days to weeks.

    The time it takes to learn something resembling a level of expertise or mastery with a language -- months and years.
    The numbers you give are consistent with the statement you claim is "preposterous", so I'm not sure what your point is exactly. Explaining to someone who is clueful what the word "algorithm" means does in fact take ten minutes, as you state. Teaching someone to come up with their own algorithms does in fact take forever, as the bit you quoted states, and as you confirm with your last point. There is not in fact a contradiction here.

  13. #28
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Thinias
    Being good at something is as much about having confidence in it as it is about experience. If you walk into a room knowing you can solve whatever problem gets thrown at you, other people will pick up on it... even if you actually can't.
    As practical interview advice, I would say that this is sound advice: you want to project confidence as it inspires confidence in you. But when we talk about it objectively, it is rubbish: if you actually can't, then you are not confident; you are over-confident, and you are not actually as good as you think you are. If you do not pull up your socks fast, you will end up like the fellow that EVOEx talked about in post #5.

    Quote Originally Posted by Thinias
    Programming isn't about languages or styles or syntax or experience. Programming is about solving problems - if you can solve a problem, you can program.
    I can agree with the idea that programming is really about solving problems, but to call languages, styles and experience irrelevant sounds naive. Learning the syntax of a programming language is one thing, but one also needs to learn the associated idioms and conventions. This comes with experience in using it. A consistent failure to use appropriate idioms, and poor style, ultimately stifles problem solving in the given programming language; even if you manage to cope, you may adversely affect the problem solving efficiency of a maintainer of the code that you write.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  14. #29
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    The "language is irrelevant" argument here is indeed rubbish. How many questions are asked on the very forum that start out something like "I know how to solve this on paper but I can't get started on the code <or cannot make the code do it>"? I have seen folks in my career that could look at a piece of hardware (that they knew of course) that could state the exact voltage/logic level on any pin on any chip in the system at any given millisecond yet could not apply logic to troubleshooting that same machine and were baffled when they actually had to work on the device. Equally I have worked in IT shops where someone BSed their way into a programming job w/o knowing the language/system and were quickly found out and ran out on a rail.

    Its equal parts love of the biz (both from a pure problem-solving standpoint and a general work-environment), knowing your problem domain (so you can solve the problems) and knowing your language (so you can properly express your solutions). The folks who say you can learn to program any language well in two weeks are either geniuses or idiots; my experience says the latter. Even making a conceptually small jump from C to C++ can yield C++ files that look like and are designed like C code (no objects, no proper use (if any) of the STL) and so on. Worse, if you work on a team with such a stunted knowledge-base the rest of the team will be up to speed and you will be playing catch-up, if you catch up at all.

    Programming in and of itself isn't about experience but doing it for a living is.
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  15. #30
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by tabstop View Post
    Teaching someone to come up with their own algorithms does in fact take forever, as the bit you quoted states, and as you confirm with your last point. There is not in fact a contradiction here.
    Okay, but in that case the analogy would be to coming up with your own language, which will take even longer. If someone is talking about the time required to learn some syntax (a few weeks), that compares to the time required to learn an existing algorithm, not to invent new ones.

    My point is the implementation in language takes longer, and is more real work, than working out the algorithm to implement. Also, a lot of "algorithmic" problem solving takes place with the language itself. For example, someone was showing me an algorithm to do permutations with recursive python "generators" last week. It's all of a half dozen lines, but you could not abstract it meaningfully from python. Ie, while there are no doubt all kinds of permutation algorithms around, that one is essentially python specific -- you could unfold it and do the same thing in BASIC maybe (not), but I'm not sure what the point of that would be. You could also describe it in terms completely abstracted from python and make it seem as if it is generic, but that is so much about theory that it really has no bearing at all on the practice.

    IMO, all specifically OOP algorithms are like this -- they are about using very concrete elements of computer programming languages, they are not the product of abstract "problem solving" separate from the use and comprehension of the/a language.
    Last edited by MK27; 04-25-2010 at 02:15 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

Popular pages Recent additions subscribe to a feed

Tags for this Thread