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. Other Discussions
  3. Article Writing
  4. Rags To Riches

Rags To Riches

Scheduled Pinned Locked Moved Article Writing
csharpquestionc++graphicsdesign
8 Posts 3 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.
  • D Offline
    D Offline
    doctrane
    wrote on last edited by
    #1

    I'm a budding programmer looking for vital threads. Learning language and using it are 2 different things although one MUST receive it before they can express it. Grasping the basic concepts of OOD and the languages (VB,C#,C++(concepts)), learning the system classes, .net and language functional constructs (gdi,reflection,diagnostics), etc. etc. , What is(are), the single best tools to use to convert ideas into code? 1. UML?? 2. Keep reading?? 3. Keep doing?? 4. Usage of interfaces, events(delegates)?? 5. A pad and a pencil?? Any thoughts to help steer me into coding effective design, architecture, OUTPUT!!! .....TIPS .. pLeAsE Trane Lives (that's Coltrane) THANX ds:confused:

    A S 2 Replies Last reply
    0
    • D doctrane

      I'm a budding programmer looking for vital threads. Learning language and using it are 2 different things although one MUST receive it before they can express it. Grasping the basic concepts of OOD and the languages (VB,C#,C++(concepts)), learning the system classes, .net and language functional constructs (gdi,reflection,diagnostics), etc. etc. , What is(are), the single best tools to use to convert ideas into code? 1. UML?? 2. Keep reading?? 3. Keep doing?? 4. Usage of interfaces, events(delegates)?? 5. A pad and a pencil?? Any thoughts to help steer me into coding effective design, architecture, OUTPUT!!! .....TIPS .. pLeAsE Trane Lives (that's Coltrane) THANX ds:confused:

      A Offline
      A Offline
      Atilla Ozgur
      wrote on last edited by
      #2

      I advise you to read Refactoring by Martin Fowler. Uml and other things may be good. But I believe in iterative development. If you need something first build it however naive it can be. Then add to it, refactor it. I never build my inheritance classes at outset. I first build something, when I start to copy paste. I look for common parts to use in inheritance. Refactoring books teaches you how to this. Of course this is my opinion. Education is no substitute for intelligence. That elusive quality is defined only in part by puzzle-solving ability. It is in the creation of new puzzles reflecting what your senses report that you round out the definition. Frank Herbert

      D 1 Reply Last reply
      0
      • A Atilla Ozgur

        I advise you to read Refactoring by Martin Fowler. Uml and other things may be good. But I believe in iterative development. If you need something first build it however naive it can be. Then add to it, refactor it. I never build my inheritance classes at outset. I first build something, when I start to copy paste. I look for common parts to use in inheritance. Refactoring books teaches you how to this. Of course this is my opinion. Education is no substitute for intelligence. That elusive quality is defined only in part by puzzle-solving ability. It is in the creation of new puzzles reflecting what your senses report that you round out the definition. Frank Herbert

        D Offline
        D Offline
        doctrane
        wrote on last edited by
        #3

        But doing it this way, building it first; That's what I do now. You're saying, wing it from your knowledge, base, research, etc. tied with your coding logic...putting it together and then Refactor it. How do you take a heavy architecture, that you've now created (the mistakes of design you've now issued, not having the complete answer until you've reached the end) and re-make it into something light and elegant?? Does Refactoring allow you to pull out those 'guts', allowing redesign, without upsetting the wheel that pulls the applecart...(Breaking something that's not broken, just a little slow) ds

        A 1 Reply Last reply
        0
        • D doctrane

          But doing it this way, building it first; That's what I do now. You're saying, wing it from your knowledge, base, research, etc. tied with your coding logic...putting it together and then Refactor it. How do you take a heavy architecture, that you've now created (the mistakes of design you've now issued, not having the complete answer until you've reached the end) and re-make it into something light and elegant?? Does Refactoring allow you to pull out those 'guts', allowing redesign, without upsetting the wheel that pulls the applecart...(Breaking something that's not broken, just a little slow) ds

          A Offline
          A Offline
          Atilla Ozgur
          wrote on last edited by
          #4

          Lets say this. You will learn while you are coding and designing. Your mistakes will teach you. For example I am in a project now. Which uses web services from a third party. This third party publishes web services which have same interface but they have diffrent names. I have tried to implement this using interfaces in my code. It worked but it was ugly and hard to change. I changed my code to use one abstract class and factory pattern. Now it is very easy to extend my design to accommadate other web services from this third party. But first I have implemented one solution. Then I looked my solution and changed it. I have not arhictected last solution first. Of course you need some knowledge for this. Of course you never have complete answer. If you do not need to expand that application leave it as it is. It is working. But you have to maintain and extend it. Then As I have done, refactor it to simple solution. Refactoring needs unit and other tests to see that you have not broken something without meaning. Refactoring does not mean only readable simple code. Refactoring means changing your code structure without changing its capability to simple structure. Think of this. You can cross ocean with a ship or airplane. Airplane is refactored solution. It accomplishes same thing but it is faster simpler in some places. Education is no substitute for intelligence. That elusive quality is defined only in part by puzzle-solving ability. It is in the creation of new puzzles reflecting what your senses report that you round out the definition. Frank Herbert

          D 1 Reply Last reply
          0
          • A Atilla Ozgur

            Lets say this. You will learn while you are coding and designing. Your mistakes will teach you. For example I am in a project now. Which uses web services from a third party. This third party publishes web services which have same interface but they have diffrent names. I have tried to implement this using interfaces in my code. It worked but it was ugly and hard to change. I changed my code to use one abstract class and factory pattern. Now it is very easy to extend my design to accommadate other web services from this third party. But first I have implemented one solution. Then I looked my solution and changed it. I have not arhictected last solution first. Of course you need some knowledge for this. Of course you never have complete answer. If you do not need to expand that application leave it as it is. It is working. But you have to maintain and extend it. Then As I have done, refactor it to simple solution. Refactoring needs unit and other tests to see that you have not broken something without meaning. Refactoring does not mean only readable simple code. Refactoring means changing your code structure without changing its capability to simple structure. Think of this. You can cross ocean with a ship or airplane. Airplane is refactored solution. It accomplishes same thing but it is faster simpler in some places. Education is no substitute for intelligence. That elusive quality is defined only in part by puzzle-solving ability. It is in the creation of new puzzles reflecting what your senses report that you round out the definition. Frank Herbert

            D Offline
            D Offline
            doctrane
            wrote on last edited by
            #5

            ...Your mistakes will teach you... Persistance, tenacity, focus and self control, helping me to override my reactive frustrations which get the better of me, is key to my solutions too.... Thanx for your input Any suggested readings, on refactoring? ds :)

            A 1 Reply Last reply
            0
            • D doctrane

              ...Your mistakes will teach you... Persistance, tenacity, focus and self control, helping me to override my reactive frustrations which get the better of me, is key to my solutions too.... Thanx for your input Any suggested readings, on refactoring? ds :)

              A Offline
              A Offline
              Atilla Ozgur
              wrote on last edited by
              #6

              Start with Fowler's book refactoring. These are my bookmarks about Refactoring in my browser. Some of them about testing, since testing and refactoring goes hand in hand. I am a bit weak about testing and trying to improve. I am trying to improve my refactoring skills too.

              Refactoring-TDD

              Introduce Explaining Variable

              Category Refactoring

              iunknown.com UI Programming and Unit Tests

              Unit Test

              Pairwise Testing for Dummies

              DevelopSense: Pairwise Testing

              The test cases go marching two by two, hurrah, hurrah

              Pairwise Pruning

              BowGo! CMU robotics researchers develop a pogo stick that aims high

              Refactoring Tutorial

              Refactoring To Pattern

              Chain Constructors

              Education is no substitute for intel

              D 1 Reply Last reply
              0
              • A Atilla Ozgur

                Start with Fowler's book refactoring. These are my bookmarks about Refactoring in my browser. Some of them about testing, since testing and refactoring goes hand in hand. I am a bit weak about testing and trying to improve. I am trying to improve my refactoring skills too.

                Refactoring-TDD

                Introduce Explaining Variable

                Category Refactoring

                iunknown.com UI Programming and Unit Tests

                Unit Test

                Pairwise Testing for Dummies

                DevelopSense: Pairwise Testing

                The test cases go marching two by two, hurrah, hurrah

                Pairwise Pruning

                BowGo! CMU robotics researchers develop a pogo stick that aims high

                Refactoring Tutorial

                Refactoring To Pattern

                Chain Constructors

                Education is no substitute for intel

                D Offline
                D Offline
                doctrane
                wrote on last edited by
                #7

                Thank you Atilla!

                1 Reply Last reply
                0
                • D doctrane

                  I'm a budding programmer looking for vital threads. Learning language and using it are 2 different things although one MUST receive it before they can express it. Grasping the basic concepts of OOD and the languages (VB,C#,C++(concepts)), learning the system classes, .net and language functional constructs (gdi,reflection,diagnostics), etc. etc. , What is(are), the single best tools to use to convert ideas into code? 1. UML?? 2. Keep reading?? 3. Keep doing?? 4. Usage of interfaces, events(delegates)?? 5. A pad and a pencil?? Any thoughts to help steer me into coding effective design, architecture, OUTPUT!!! .....TIPS .. pLeAsE Trane Lives (that's Coltrane) THANX ds:confused:

                  S Offline
                  S Offline
                  STW
                  wrote on last edited by
                  #8

                  I nearly always make an interface for a class, because this keeps you thinking about what the class should do, rather than the implementation. Another advantage is that a class can be derived from multiple interfaces, so cunning class-hierachies are possible. Develop, develop, develop.... Books: Design Patterns for C#!!! Implement classes for Standard Things, Login, Database Access, Controls and implement them a common way, not specialized. Split your project into logical items: Login, MdiForm, Menu {ToolBar, Treemenu, MainMenu}, Reports, MainInfo, InfoLists, Searching, New and Edit, .... Parts {Bureau, Production, ...} and split it. Most people think in a one-dimensional way (a simple line) but most programming things are Multi-Dimensional Tree-Structures!!! and trees aren't so simple to keep in mind... You could also have a look at the Document-View Architecture in C++. There is shown how to split Data from the View of the Data. I don't use UML because I just not used my time to learn a UML-Programm but if you can, use it! Good luck! Stefan Werdenberg, www.adwise.ch

                  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