Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Can I become a good programmer?

Can I become a good programmer?

Scheduled Pinned Locked Moved The Lounge
algorithmsquestion
28 Posts 25 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S supernorb

    I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

    M Offline
    M Offline
    Marc Clifton
    wrote on last edited by
    #13

    supernorb wrote:

    If some one looks and feels my own application

    Perhaps you are trying too hard. Go for something simpler, like Polish programming. In, out, repeat as necessary. Very simple. Two methods and a loop. Marc

    My Blog

    1 Reply Last reply
    0
    • S supernorb

      I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

      J Offline
      J Offline
      Jeremy Hutchinson
      wrote on last edited by
      #14

      supernorb wrote:

      I always make a lot of errors and bugs when programming and spend too much time searching and debugging

      At one level or another what you describe is what "experienced" developers do all day. Make mistakes and fix them, repeat until you have a usable product. With that in mind the keys to becoming a good programmer are: 1. Learn from your mistakes so you don't keeping making the same mistakes over and over 2. Learn the best ways to debug so you can find and fix your mistakes 3. Learn how to tell if you're progressing on a problem, or need help 4. Learn how to use google effectively to find others who have been stuck in the same place you are and how they got past that point. 5. Learn how to phrase a programming question in a way that more experienced programmers can understand the problem so they can help you. (both online and in person) Notice the common theme in that list? I know I was a fairly horrible programmer when I was 2 years into my career, and I would guess most people here were too.

      1 Reply Last reply
      0
      • S supernorb

        I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

        S Offline
        S Offline
        skcalicut
        wrote on last edited by
        #15

        Dear friend, I believe it is all about your style and habits. its always better to make the whole system make error proof before implementing through testing. The main thing is your system design & your methods to develop it. Priliminary stages you have to go through lot of searching & corrections. still as you will become experienced it will become less. No one can start developing softwares with 100% knowledge about working tools. Sujith Kumar

        Sujith Kumar K 00965-65030329

        1 Reply Last reply
        0
        • S supernorb

          I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

          V Offline
          V Offline
          Vic Rauch
          wrote on last edited by
          #16

          My first programming job was 1 1/2 years long before I moved to another company. About 3 years later my first boss asked me to do one more system for him. When I returned, on a part time basis, I looked over what I had done in that first 1 1/2 years. A couple of the things I had done were brilliant, but most of my previous work was only adequate at best. Was was really the best part of going back and seeing my old work was realizing that I had learned enough in the three years after I left that I could tell what was "brilliant" and what wasn't. This will happen for you too as you continue in this business. And secondly, I have always been "slow" in EVERYTHING I do. When I was still in college, I worked as a carpenter. I was the slowest one in the shop, but when something out of the normal needed to be done, the boss always put me on it because, in his words, he knew I would do it best. I still love this field of work, and I've been at it, including my time in classes during college, for 41 years. You have the right attitude in "I'll never give up!" I'm really glad to have you in our field of endeavor.

          1 Reply Last reply
          0
          • P Paul M Watt

            I have many different perspectives to help answer this question. Two years of experience is just enough to be dangerous (ie. competent, just beyond the beginner stage) . The longer you program, the more you will continue to get better, you'll start to remember your previous mistakes and avoid them, and soon you will start to see the problems that are coming up if you don't change your design or implementation and avoid the headaches up ahead. Many people have a different opinion of what a good programmer is, and there are many types of skills that are valuable, just being good in one of these areas can make you a valuable asset. If you want to write solid products, you need to be thorough, meticulous, and detail oriented. If you want to write "living" programs (programs that are always evolving starting from a base implementation), it helps to be a good problem solver with critical thinking skills. If you want to design programs, it helps to be able to think about things abstractly. The world of software is virtual, you can't touch the final result. The final result is an idea that is executed by a computer. That's why everyone, including programmers, continue to under-estimate the difficulty of a task and how long it will take to complete, or make what is perceived to be a "simple" change. From what I have read, I think you have found a good career for yourself. You are doing something that you enjoy, that makes it less like work and more like getting paid to do a hobby. One thing that I found that has helped me improve my speed is using a technique called Test-Driven Development (TDD). You write the tests at the same time you write the code. Good luck in your journey (it's not a race :)).

            All of my software is powered by a single Watt.

            C Offline
            C Offline
            ClockMeister
            wrote on last edited by
            #17

            Paul Watt wrote:

            Good luck in your journey (it's not a race :) ).

            Well said, and spot-on. -Max

            1 Reply Last reply
            0
            • S supernorb

              I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

              M Offline
              M Offline
              matt314hew
              wrote on last edited by
              #18

              Sure you can. And don't think that being a good programmer means you will never have errors. Even the best still run into issues where they forget to declare a variable or even just forget a ; at the end of a line or a } at the end of a method or a ) after a call. Two years isn't that long and it is best to get some real world programming in (make your own applications at home that you could benefit from using on a daily or weekly basis). I am making a movie DB and i know that others before me have one that i could buy or even get for free.. but I like working on it on the side as it gives me something to do and a feeling of accomplishment.

              1 Reply Last reply
              0
              • L Luc Pattyn

                Program defensively, check your inputs, check return values, log intermediate values, include assertions. And program in small increments. Always have your program ready to build, run, and test. Test thoroughly what exists before adding more features and bugs. One bug is easy to discover, pinpoint and fix; in the presence of several bugs, each of them becomes much harder to find. So work in small steps, that is the fastest way forward. :)

                Luc Pattyn [My Articles] Nil Volentibus Arduum

                C Offline
                C Offline
                ClockMeister
                wrote on last edited by
                #19

                Luc Pattyn wrote:

                And program in small increments. Always have your program ready to build, run, and test. Test thoroughly what exists before adding more features and bugs. One bug is easy to discover, pinpoint and fix; in the presence of several bugs, each of them becomes much harder to find. So work in small steps, that is the fastest way forward.

                Exactly. An old adage: "How do you eat an elephant? One piece at-a-time". Developing software is like any other large project, done with small advances daily. After a year you amaze yourself in what you've accomplished. -Max :D

                1 Reply Last reply
                0
                • S supernorb

                  I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                  C Offline
                  C Offline
                  ClockMeister
                  wrote on last edited by
                  #20

                  The fact that you're enjoying it is going to go a LONG way in helping you to persevere through the learning curves you will inevitably climb. Let programming always be fun. If it stops being fun then you're taking it too seriously. I've been at this for over 35 years and I still get a kick out of writing simple applications to automate things I need automated. BTW ... you don't have to always be working on something "big". I'm at a phase in my career where most of my work is maintenance on a system I've developed over 13 years, so I'm not real busy in my main job at the moment. So, to keep my skills sharp I develop software for my own use. Also: don't let the state of the technology intimidate you into thinking you have to be able to duplicate some of the more sophisticated applications you might be seeing. Super-sophisticated applications are the results of large team efforts. Allow yourself to enjoy developing relatively simple things that you can assemble over time into more complex works. You will amaze yourself at what you piece together over the years. It's even OK to "re-invent" the wheel as a programmer if you want to. I'm constantly adding functionality to my libraries that is either missing in the frameworks or isn't implemented the way I like it. :-) I'm glad to see the encouragement the rest of the group is giving you here. They're right. Stick with it, keep having fun and keep learning. -Max :D

                  1 Reply Last reply
                  0
                  • S supernorb

                    I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                    D Offline
                    D Offline
                    danielthesolver
                    wrote on last edited by
                    #21

                    You seem to be very determined to be better. That'd help. My advice: before you write any program think about the underlying algorithm thoroughly. If needed, use paper and pencil to try out your algorithm on some specific examples related to the problem. The more effective your algorithm is and the more you understand what your code does , the less time you'd spend debugging....

                    1 Reply Last reply
                    0
                    • S supernorb

                      I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                      B Offline
                      B Offline
                      b10543748
                      wrote on last edited by
                      #22

                      you need read : The Tao Of Programming[^] ;P ps. you are a good programmer, enjoy it and gratz :)

                      1 Reply Last reply
                      0
                      • S supernorb

                        I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                        E Offline
                        E Offline
                        ErrolErrol
                        wrote on last edited by
                        #23

                        Quit making the same mistakes, over and over. Just think about it while you are doing it. Ask yourself, "am I making a dumb mistake?", and if a little voice inside your head says, "Yes!", then don't do it. Other than that, you're way, way ahead of the curve. You have placed your ego in exactly the right spot, that being well behind you and out of the way, so all you have to do from this moment forward is STOP making the same mistakes over and over!! LOL!! .... been there, done that!!

                        1 Reply Last reply
                        0
                        • S supernorb

                          I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                          S Offline
                          S Offline
                          SanjeevCharla
                          wrote on last edited by
                          #24

                          Nearly, i have the same experience in programming. I have the same problem in the very beginning stage. What i have done is, when ever i have encountered a problem / bug i just note down that reason for the problem/bug and simple solution in a simple text file, or in a flash card for more visual attraction. On the next time before i started to implement/design an application i have just open those saved files to have a quick look on my previous mistakes. In this way, my bugs are reduced in a very short time.

                          1 Reply Last reply
                          0
                          • P Paul M Watt

                            I have many different perspectives to help answer this question. Two years of experience is just enough to be dangerous (ie. competent, just beyond the beginner stage) . The longer you program, the more you will continue to get better, you'll start to remember your previous mistakes and avoid them, and soon you will start to see the problems that are coming up if you don't change your design or implementation and avoid the headaches up ahead. Many people have a different opinion of what a good programmer is, and there are many types of skills that are valuable, just being good in one of these areas can make you a valuable asset. If you want to write solid products, you need to be thorough, meticulous, and detail oriented. If you want to write "living" programs (programs that are always evolving starting from a base implementation), it helps to be a good problem solver with critical thinking skills. If you want to design programs, it helps to be able to think about things abstractly. The world of software is virtual, you can't touch the final result. The final result is an idea that is executed by a computer. That's why everyone, including programmers, continue to under-estimate the difficulty of a task and how long it will take to complete, or make what is perceived to be a "simple" change. From what I have read, I think you have found a good career for yourself. You are doing something that you enjoy, that makes it less like work and more like getting paid to do a hobby. One thing that I found that has helped me improve my speed is using a technique called Test-Driven Development (TDD). You write the tests at the same time you write the code. Good luck in your journey (it's not a race :)).

                            All of my software is powered by a single Watt.

                            J Offline
                            J Offline
                            James Lonero
                            wrote on last edited by
                            #25

                            Paul, I concur with you. And, your point "You are doing something that you enjoy" is a big point. If you truly enjoy programming and are willing to (truly want to) spend a lot of time doing it, then you will prevail. Same with me. When I started, I looked for many opportunities to program, even before computers were easily available (late 70s and very early 80s). Back then, I wrote my code on lined paper by hand with a pencil and eraser (I sucked at typing back then). Also, read the code from more senior programmers/developers to see how they write, this is an excellent opportunity to learn. Just keep at it and you will begin to see patterns in what you do and where you make mistakes. Moreover, the field is growing with many different avenues. Also, now is a great time to be a developer.

                            1 Reply Last reply
                            0
                            • S supernorb

                              I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                              U Offline
                              U Offline
                              User 7921364
                              wrote on last edited by
                              #26

                              Hi, you told, you will never give up which is very good. Here small home work is required: sit at home some peaceful place and start thinking what mistakes you did and how you over come it. By this homework next time automatically it will reduce your mistakes and have patience Practice it, it will definitely help you Thanks and regards, Ajay K N

                              1 Reply Last reply
                              0
                              • S supernorb

                                I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                                F Offline
                                F Offline
                                Florin Jurcovici 0
                                wrote on last edited by
                                #27

                                You are in a bad situation, if you don't have a mentor. You should look for one - but be very careful, it's easy to learn programming the bad way. Other than that, my advice is to learn two things: how to design apps so that errors are difficult to introduce, and how to debug effectively. If you write programs so that introducing bugs is difficult, you'll have less bugs to debug. If you know how to debug effectively, you'll spend less time doing so. While I can't help you directly, I think it's useful to read a few books. One which is IMO essential, but not so popular among programmers: Why Programs Fail. This should, to some extent, compensate for you not having somebody to _teach_ you debugging - which is an essential skill, IMO. Code Complete is a basic book, but very useful for beginners - your two years experience still qualify as "beginner", IMO. In the same category, but a tiny bit smarter, is IMO Writing Solid Code. You should go on with Riel's OO design heuristics (I liked the first edition more), the GoF's design patterns - here you can choose, as there are newer books covering more patterns, but that book has an extremely useful introductory section, from which you'll understand why patterns are useful and how you should use them. Once you have read an understood that part of the book, you can drop it, and start looking up patterns on the web. Another essential book, IMO, is Fowler's Refactoring - again, not necessarily for the refactorings themselves, since most decent IDEs these days have built in support for many refactorings, which you can easily combine to produce the more complex ones, but because of the code smells section. And of course, you should get a solid foundation in algorithms and data structures. MIT's Open Courseware is a good starting point, you can also learn a lot simply by reading the articles on this topic from Wikipedia. There's also an older book, Structure and Interpretation of Computer Programs, used as a textbook at MIT, which, while apparently not so useful for people using more mainstream languages, is very good reading for a better understanding of programming, thus indirectly helping you getting a better understanding of the algorithms and data structures.

                                1 Reply Last reply
                                0
                                • S supernorb

                                  I have learned programming for 2 years, I can build a great application but need two much time to do (maybe double much more than others can do). The reason is I always make a lot of errors and bugs when programming and spend too much time searching and debugging before realizing those bugs are not too complex even some are very simple, the worse thing is I often encounter the same problems that I have already encountered before. If some one looks and feels my own application, s/he may think I must have a good programming skill and experience but s/he won't be able to imagine how much time and expense I had to spend and pay for it. I really love programming but that seems not to be enough. I need your advice, your experience and your stories about programmers. Thank you all! Anyway, I'll never give up!

                                  M Offline
                                  M Offline
                                  mbb01
                                  wrote on last edited by
                                  #28

                                  So ... I've got about 24 years experience as a developer ... like you perhaps, I was isolated from other developers early in my career so I had to learn how to be a developer because they just don't teach you the real skills you'll need in college. Its going to be ~5 years into your career before you start becoming a good developer. Practice does make perfect, so don't worry that it takes you a long to time to complete your work. Just make sure that it is of the highest quality you can make it. Now some practical and specific advice: In the early days of my career, these are the things I did: 1) I learnt to copy type to RSA and Pitmans 1 standard (30 wpm). Trust me, it makes a huge difference when you can rattle out your code as fast as you can think it. BTW, generating documentation was what drove me to learn how to type properly. I was having to write design documents and user guides and the company copy typists were hopeless! 2) I read "Structured Design" by Yourdon and Constantine. A very informative book that will introduce some very important concepts. You will want to supplement this with more modern books on object orientated design e.g. Head First Design Patterns and Head First Object Oriented Design. 3) I was meticulous with my design process. I spent a long time making sure I did Specifications, Input/Output charts, Process Charts, P-Code and P-Code dry runs before I even started coding. The process helped me think through the problems and issues so that when I did code, it was more of a typing exercise. I found following the process dramatically reduced the errors I was producing. Over time you'll gain confidence and know when you'll need to go through the design process and when you can work on the fly i.e. from your accumulated experience. 4) I found it easier to break up a large task into a sequence of smaller tasks which would later integrate or join together. I would try to organize each smaller task into a one week work unit where I would be designing Mon-Wed, Coding on Wed/Thu and Testing on Thu/Fri. Then once all my parts where ready, I would spend a week integrating them testing and debugging until it all worked. Does the method sound familiar? Agile was a long way off at the start of my career, but what I was doing back then is strangely similar. So now after all these years I'll give you some practical tips: 1) If your doing things correctly roughly speaking the time you spend on designing, implementing and testing is 30%/20%/40% with the odd 1

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • World
                                  • Users
                                  • Groups