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. Actual Coding - Learning Curve

Actual Coding - Learning Curve

Scheduled Pinned Locked Moved The Lounge
38 Posts 30 Posters 0 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.
  • T Offline
    T Offline
    TheOnlyRealTodd
    wrote on last edited by
    #1

    So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

    J J V S OriginalGriffO 21 Replies Last reply
    0
    • T TheOnlyRealTodd

      So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

      J Offline
      J Offline
      Jim Meadors
      wrote on last edited by
      #2

      I think you are going the right direction. Just keep learning from the mistakes. :thumbsup:

      <sig notetoself="think of a better signature"> <first>Jim</first> <last>Meadors</last> </sig>

      1 Reply Last reply
      0
      • T TheOnlyRealTodd

        So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

        J Offline
        J Offline
        Jorgen Andersson
        wrote on last edited by
        #3

        TheOnlyRealTodd wrote:

        Is there any standardized way to improve at debugging?

        Knowing your tools and getting your hands dirty.

        Wrong is evil and must be defeated. - Jeff Ello

        1 Reply Last reply
        0
        • T TheOnlyRealTodd

          So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

          V Offline
          V Offline
          V 0
          wrote on last edited by
          #4

          TheOnlyRealTodd wrote:

          that take me like 2-4 HOURS to solve at times

          This can be normal and in professional environments it can be quite longer. However I would also like to add an anecdote from my past experience: I was coding on an application containing a matrix of results and somehow the results where one of in this case, correct in the other and again wrong in a third case. After 13 hours of straight programming the letters on my screen started to turn green and started to move around. My queue to stop working (it was 21:30 and I still had to go home). The next day I came in and started working again. It took me literally less than 5 minutes to solve the problem. Moral of the story: Dare to put a problem on the side, focus on something else and come back again later. Keep up the enthusiasm :-)

          V.

          (MQOTD rules and previous solutions)

          D M 2 Replies Last reply
          0
          • T TheOnlyRealTodd

            So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

            S Offline
            S Offline
            Super Lloyd
            wrote on last edited by
            #5

            What you will ideally need is a tutor. That is someone who is a skilled developer and wouldn't mind occasionally have a look at your problem... I think there is a tutoring program on CodeProject (with volunteers..) give it a go sometimes, who knows? (I never did, so I don't... :omg: )

            A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

            P 1 Reply Last reply
            0
            • T TheOnlyRealTodd

              So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

              OriginalGriffO Offline
              OriginalGriffO Offline
              OriginalGriff
              wrote on last edited by
              #6

              You're doing the right things, so you should improve over time as the skills of design and debugging become more practiced. It's often difficult to work out where to start on a complex problem, so sitting there for 2-4 hours isn't unusual: I've spent most of a week working out what to do before I've even fired up the editor (or Visual Studio). Sometimes that "thinking time" is the most important part of the project! A couple of suggestions: 1) As has been mentioned, take breaks. I try to stop what I'm doing at least once an hour and do something totally different, as it "recharges my creative batteries" and stops me getting stale. 2) Never be afraid to say "this isn't working" and throw away an idea just because you have put effort into it. It's one of the hardest things to do, but sometimes we have to say to ourselves "this isn't going to work", or "that was a bad idea", even if we've coded most of it... :laugh: 3) Practice. Practice, practice, practice, practice, practice, practice, practice. And then practice some more! Development and debugging are both skills, and like all skills they only ever get better when you use them. Learn the basics of the VS debugger, and use them - ignore the complicated stuff for now - it's a "mind set" you need to develop, not an intimate knowledge of arcane debugging commands. Basic breakpointing, stepping into, stepping over, looking at variable contents is 99.99% of all I do with the debugger. It's also worth logging info (either to a log file, or the console) as that can give you a better "feel" for how code is running. Keep at it - you seem to be doing pretty well so far! :thumbsup:

              Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

              D 1 Reply Last reply
              0
              • T TheOnlyRealTodd

                So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                Kornfeld Eliyahu PeterK Offline
                Kornfeld Eliyahu PeterK Offline
                Kornfeld Eliyahu Peter
                wrote on last edited by
                #7

                I would add only one thing to all the good advises... Choose pet project, that seems to be hard... That will force you to learn new things every day...

                Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.

                "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

                1 Reply Last reply
                0
                • T TheOnlyRealTodd

                  So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                  B Offline
                  B Offline
                  BillWoodruff
                  wrote on last edited by
                  #8

                  In my experience the type of "technical learning" necessary for programming skills in a given OS and "stack" varies from person to person; of course it varies by general cognitive abilities in dealing with logic and abstractions, symbol and semantics, but, there is, also, imho, a kind of "innate" cognitive style which is quite "individual." Some folks, in my experience, are endowed with strength at learning from "the top down" ... from abstraction at a high-level to "nitty-gritty," from algorithm to code: give them a set of Backus-Naur diagrams and they can visualize how those abstractions "work" in a "real world" computer language as a dynamic set of parsing/object-construction, etc., "rules." Other folks, like me, in contrast, are "bottom up" learners who learn best by making multiple passes over the high-level concepts and forma structure in the context of focusing on some specific technique, or problem to solve, most often while experimenting/prototyping. I believe this type of learner tends to need a lot of "hands-on" before they can form an accurate "mental model" of how the high-level abstractions and concepts "work" in the code. I do believe that intense periods of all-out effort, total immersion, in learning are very valuable; at the same time, I believe it is an important skill to develop to know when (as in your example where the screen starts dancing) that you are over-loaded mentally, and the ratio of effort to learning turns negative. A phenomenon I have noticed in myself, and others, is a kind of "carry-forward" from the first language/stack one learns in depth to your future learning new languages/stacks. For me, the first really deep-dive was with Lisp, and then, PostScript, and I find myself thinking, sometimes, that I wish .NET had the kind of "dictionary stack" to govern current semantic state, and other save/restore-state mechanisms, like the 'gsave/grestore graphic-state semantics, that PostScript has :) If you accept the premise of a tendency for learning in "bottom up" vs. "top down" style, and a connection with the general cognitive style of a person, then, from an educational point of view ... what follows ? I'd say the strong "bottom upper" at times need to engage in intensive immersion in the higher-level abstractions, in the structure, semantics, algorithms, design-patterns. And, I'd say the strong "top downer" needs to "get their hands dirty," and work with lower-level idiosyncratic features, like dealing with the quirks of the UI Controls that .NET provides in WinFor

                  B 1 Reply Last reply
                  0
                  • T TheOnlyRealTodd

                    So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                    G Offline
                    G Offline
                    Garth J Lancaster
                    wrote on last edited by
                    #9

                    Quote:

                    P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                    not really, has has been said before - practice .. that being said, when I started out in 'c' etc, command-line stuff on a Unix platform, all we had was 'printf', none of this fancy IDE stuff .. so, I'd suggest, for my 0.02 worth a) learn how to step through a program looking at variables etc, setting breakpoints b) learn a logging framework - log4net or similar - avoid printf("At step 1, value of x is ....") throughout your code :-) c) look at techniques of 'incremental' building of programs/solving problems - test the basic algorithms/classes etc with unit tests etc that way you can be sure your 'base'/foundation is firm before you proceed d) wether you use command-line or Atlassian SourceTree or GitKraken, as you develop bigger programs, use source control - sure, when you start out, you backup important files/directories as date/time stamped zip files, yes ? but 'rolling back' from these if you mess something up is a pain - so learn and like a Source Control System above all - read voraciously, have a thirst for knowledge - its not necessarily about the language/framework, its about being able to break problems/issues down into solvable chunks and then modelling them

                    1 Reply Last reply
                    0
                    • T TheOnlyRealTodd

                      So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                      D Offline
                      D Offline
                      den2k88
                      wrote on last edited by
                      #10

                      Experience, experience, experience. It's over 4 years I program full time and before that I did all kind of microprojects - I still bang my head on some "simple" problems. The best way to avoid long fruitless hours is to invest time in designing what you want to achieve and the structure of what you're building. That streamlines and divides the problems into smaller ones that can be tackled more easily. Also keep in mind that you may have to redesing one thing several times and recognize it after long coding hours - how to improve at that? Wasting time. Doing things less than optimal. With time you'll know what worked and what not and you'll be able to work faster. It takes a year to make a year of experience, there are no shortcuts. Just don't ever think you have nothing to improve or learn, keep your mind open and be ready to acknowledge when you did suboptimal things. It happens.

                      GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani

                      W 1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        You're doing the right things, so you should improve over time as the skills of design and debugging become more practiced. It's often difficult to work out where to start on a complex problem, so sitting there for 2-4 hours isn't unusual: I've spent most of a week working out what to do before I've even fired up the editor (or Visual Studio). Sometimes that "thinking time" is the most important part of the project! A couple of suggestions: 1) As has been mentioned, take breaks. I try to stop what I'm doing at least once an hour and do something totally different, as it "recharges my creative batteries" and stops me getting stale. 2) Never be afraid to say "this isn't working" and throw away an idea just because you have put effort into it. It's one of the hardest things to do, but sometimes we have to say to ourselves "this isn't going to work", or "that was a bad idea", even if we've coded most of it... :laugh: 3) Practice. Practice, practice, practice, practice, practice, practice, practice. And then practice some more! Development and debugging are both skills, and like all skills they only ever get better when you use them. Learn the basics of the VS debugger, and use them - ignore the complicated stuff for now - it's a "mind set" you need to develop, not an intimate knowledge of arcane debugging commands. Basic breakpointing, stepping into, stepping over, looking at variable contents is 99.99% of all I do with the debugger. It's also worth logging info (either to a log file, or the console) as that can give you a better "feel" for how code is running. Keep at it - you seem to be doing pretty well so far! :thumbsup:

                        Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

                        D Offline
                        D Offline
                        den2k88
                        wrote on last edited by
                        #11

                        You remind me that I learned the existance of "set next statement" after 3.5 years of developing. All in VS. With complex problems ranging from hardware management to layered integration of Sobel transforms with heuristic detection of patterns. And that the first 3 months I didn't know how to use the debugger effectively and debugget with prints. Image processing. With prints. As I say, I know nothing about computers. Beacuse each time I think of what I knew two years ago I end up saying "I didn't know anything back then". Since it happened regularly in the past 20 years I can predict that two years from now I'll be looking back and saying that now I know nothing about computers, so I accept it as of now.

                        GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani

                        1 Reply Last reply
                        0
                        • T TheOnlyRealTodd

                          So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                          M Offline
                          M Offline
                          Mycroft Holmes
                          wrote on last edited by
                          #12

                          I'll add a couple of other things I have found invaluable over the years. Another set of eyes. Because you are so close to the code you can end up seeing what you expect to see, having someone else look at a problem has often identified an error that I just can't see no matter hown long I look at it. Another developer you can talk the problem over with. Often as you try and explain the problem to your colleague you can solve the issue without the other person needing to say a word. This can really weird some people out but it does work.

                          Never underestimate the power of human stupidity RAH

                          D OriginalGriffO 2 Replies Last reply
                          0
                          • M Mycroft Holmes

                            I'll add a couple of other things I have found invaluable over the years. Another set of eyes. Because you are so close to the code you can end up seeing what you expect to see, having someone else look at a problem has often identified an error that I just can't see no matter hown long I look at it. Another developer you can talk the problem over with. Often as you try and explain the problem to your colleague you can solve the issue without the other person needing to say a word. This can really weird some people out but it does work.

                            Never underestimate the power of human stupidity RAH

                            D Offline
                            D Offline
                            den2k88
                            wrote on last edited by
                            #13

                            Mycroft Holmes wrote:

                            Another developer you can talk the problem over with. Often as you try and explain the problem to your colleague you can solve the issue without the other person needing to say a word. This can really weird some people out but it does work.

                            Tested and true. Absolutely invaluable. :thumbsup:

                            GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani

                            1 Reply Last reply
                            0
                            • T TheOnlyRealTodd

                              So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                              K Offline
                              K Offline
                              KarstenK
                              wrote on last edited by
                              #14

                              I can give you the tip, to handle every return value, if it is an error. Often a logging message is enough. Try yourself in throwing and handling your own exceptions. :thumbsup:

                              Press F1 for help or google it. Greetings from Germany

                              1 Reply Last reply
                              0
                              • M Mycroft Holmes

                                I'll add a couple of other things I have found invaluable over the years. Another set of eyes. Because you are so close to the code you can end up seeing what you expect to see, having someone else look at a problem has often identified an error that I just can't see no matter hown long I look at it. Another developer you can talk the problem over with. Often as you try and explain the problem to your colleague you can solve the issue without the other person needing to say a word. This can really weird some people out but it does work.

                                Never underestimate the power of human stupidity RAH

                                OriginalGriffO Offline
                                OriginalGriffO Offline
                                OriginalGriff
                                wrote on last edited by
                                #15

                                Agreed. My cat is an excellent problem solver in this way. :-D

                                Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

                                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                Kornfeld Eliyahu PeterK 1 Reply Last reply
                                0
                                • OriginalGriffO OriginalGriff

                                  Agreed. My cat is an excellent problem solver in this way. :-D

                                  Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

                                  Kornfeld Eliyahu PeterK Offline
                                  Kornfeld Eliyahu PeterK Offline
                                  Kornfeld Eliyahu Peter
                                  wrote on last edited by
                                  #16

                                  I would not trust a cat needs you to solve a problem :laugh:

                                  Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.

                                  "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

                                  OriginalGriffO 1 Reply Last reply
                                  0
                                  • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

                                    I would not trust a cat needs you to solve a problem :laugh:

                                    Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.

                                    OriginalGriffO Offline
                                    OriginalGriffO Offline
                                    OriginalGriff
                                    wrote on last edited by
                                    #17

                                    You'd be surprised: they are pretty good, because they have a way of staring right at you with an expression of "So? Do I care?" all the damn time that makes you doubt what you are saying is important or relevant. And that leads you to doubt what you believe is right...which helps you go :doh: and realize where you went wrong!

                                    Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

                                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                    P 1 Reply Last reply
                                    0
                                    • D den2k88

                                      Experience, experience, experience. It's over 4 years I program full time and before that I did all kind of microprojects - I still bang my head on some "simple" problems. The best way to avoid long fruitless hours is to invest time in designing what you want to achieve and the structure of what you're building. That streamlines and divides the problems into smaller ones that can be tackled more easily. Also keep in mind that you may have to redesing one thing several times and recognize it after long coding hours - how to improve at that? Wasting time. Doing things less than optimal. With time you'll know what worked and what not and you'll be able to work faster. It takes a year to make a year of experience, there are no shortcuts. Just don't ever think you have nothing to improve or learn, keep your mind open and be ready to acknowledge when you did suboptimal things. It happens.

                                      GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani

                                      W Offline
                                      W Offline
                                      Wastedtalent
                                      wrote on last edited by
                                      #18

                                      I agree, good design can make a massive difference. Invest time in learning design patterns, that will save hours of debug/code time later.

                                      1 Reply Last reply
                                      0
                                      • OriginalGriffO OriginalGriff

                                        You'd be surprised: they are pretty good, because they have a way of staring right at you with an expression of "So? Do I care?" all the damn time that makes you doubt what you are saying is important or relevant. And that leads you to doubt what you believe is right...which helps you go :doh: and realize where you went wrong!

                                        Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

                                        P Offline
                                        P Offline
                                        PeejayAdams
                                        wrote on last edited by
                                        #19

                                        I've used Griff's "ask the cat" strategy many times with great success. A typical "cat programming" session might go something like "Okay, Mog, check this - for some reason this binding doesn't work even though x, y and z are all in place and I know that event gets fired and the dependency is there and that's always going to work unless ... unless ... of course! God! I'm an idiot, why didn't I think of that? Mog, your a genius! Have a kitty treat!" It's not, needless to say, that the cat provides the answer but that you find yourself restating the problem in a slightly different way - it also helps that you're not physically looking at the code. When you look too hard at code, it's easy to go in circles. I often find that I'll wake up in the morning with a solution to something that seemed utterly impenetrable the day before. Overnight, you subconsciously reframe the problem and then the solution becomes obvious in a way that just doesn't happen if you chain yourself to your desk.

                                        1 Reply Last reply
                                        0
                                        • T TheOnlyRealTodd

                                          So I've recently surpassed the "basics" of learning programming (been using C#) and I've now been taking my knowledge and getting creative by making all kinds of cool little apps - from web browsers to gag joke apps, to apps that monitor system performance information... I've really gotten "hands on" with coding now and mostly the challenges I face come up when I write my programs trying to figure out logic and debug and also trying to discover new functions/methods and APIs... Speaking of APIs and libraries (namespaces, etc...), I've noticed they are an entire different learning curve. Not only must one know the actual language, but he or she must also have a working knowledge of APIs and libraries or else the language knowledge won't mean anything. Anyway, so I want your input on learning and growing as a coder... I have more patience for coding than I do anything else in my life. I will literally sit for like 12 hours if I have to just to get something worked out. I can't say that about anything else. However, there are certain logic issues that I run into that take me like 2-4 HOURS to solve at times, and sometimes the problem is painfully simple, I just couldn't see it to begin with. Is this pretty typical for a new coder or coders in general? I don't have a ton of experience being around other new coders so sometimes I wonder if that's normal or if I'm just a wreck. It's pretty easy for me to follow along in coding books and watch tutorials on Udemy and YouTube and understand everything, even when it comes to so-called "advanced" concepts. However, it's when I put all that stuff away and it's between me and Visual Studio that sometimes I get stuck... And sometimes I don't want to quit and I will stay up all night trying to figure out what ends up being a simple problem that can be fixed in a line or two of code. I figure this is how the job probably really is, except with much more advanced problems. However, I do still enjoy coding. It's fun to work out the bugs. Your advice/insight is appreciated. Thanks. P.S. Is there any standardized way to improve at debugging? I'm still trying to learn my way around the VS debugger.

                                          M Offline
                                          M Offline
                                          Member 11683251
                                          wrote on last edited by
                                          #20

                                          My number one tip when it comes to the situation where you spend a few hours figuring something out which in the end was fairly simple is to get the habit in to work in seeing it from another angle. Hard to explain without having it sound cliche but this is one of those situations where often enough you just need to air the problem with someone else. Try to explain it out loud to yourself as if you were describing it to someone or if possible find someone to discuss it with. It can actually be fairly useful to speak with someone that's not a programmer/coder because then you have to dissect the problem in order for them to understand what's going on and that will help you solve it. Another thing I might suggest is to take on something a little bigger to challenge yourself and grow. Something where you just can't jump straight in to and requires more design and thought. A few years ago I made a simple tamaguchi game in c++ for my wife where she easily just could make new pngs to add more clothing, faces etc. At the time it seemed so trivial to me, I knew what I wanted to do and started doing it. But after a little while it grew so complex that it was a total mess and I realise that I had spent more time writing a UI library than working on a game and once I striped the game away I had something that was easy to reuse. Helped reinforce oop principles in me after realising my mistakes as well as how to better plan ahead. I like programming games because they can range from super simple to complex behemoths. You can work closely with the gpu, on network or AI and UI. It's also easy to get ideas, just pick something and see if you can replicate it and improve to your liking.

                                          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