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. What are 'the basics'?

What are 'the basics'?

Scheduled Pinned Locked Moved The Lounge
csharpcomjsonhelp
36 Posts 24 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
    Distind
    wrote on last edited by
    #1

    I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

    L C P R T 14 Replies Last reply
    0
    • D Distind

      I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      Let's start out with algorithms and analyzing their behavior at runtime.

      A while ago he asked me what he should have printed on my business cards. I said 'Wizard'. I read books which nobody else understand. Then I do something which nobody understands. After that the computer does something which nobody understands. When asked, I say things about the results which nobody understand. But everybody expects miracles from me on a regular basis. Looks to me like the classical definition of a wizard.

      1 Reply Last reply
      0
      • D Distind

        I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

        C Offline
        C Offline
        Chris Maunder
        wrote on last edited by
        #3

        It comes down to realising that every instruction you ask the machine to execute has physical implications: memory allocation, CPU cycles used, power consumed, screen space needing to be redrawn. For me the basics are understanding how a computer actually does stuff, and asking the computer to do this in a sensible way by following sensible, tried and true patterns and using efficient algorithms. Tied closely is understanding the fundamentals of the framework and library you are using so you can colour your judgement calls appropriately. After this there's the level of how you actually write code. Architecting, Testing, code cleanliess and maintainability. Basically: don't be selfish and write code only for yourself. Write it for others.

        cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

        M J S 3 Replies Last reply
        0
        • D Distind

          I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

          P Offline
          P Offline
          PIEBALDconsult
          wrote on last edited by
          #4

          Distind wrote:

          the basics of computer science?

          Dunno, but for the basics of programming, I'd include: Flow control statements -- you might not find any in a drag-and-drop GUI app, yet the person who "wrote" it thinks he's a professional developer. Data types. File operations. Data structures, except .net has them built-in. OOP.

          1 Reply Last reply
          0
          • D Distind

            I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #5

            I think a lot of people (even within the community) mix up Computer Science with Programming. The former is a broad subject that demands sound knowledge in, mainly, logic and number theory, which are the building blocks for developing algorithms to solve problems(which is why computers were invented in the first place). The latter is merely a tool to achieve the problem solving. Note, I am not saying it is inferior. Programming is what sets off a lot of us into the former domain as we can literally see things happening, as opposed to writing and thinking in Greek, but that doesn't take away from the fact that it is merely a means to an end.

            ...byte till it megahertz... my donation to web rubbish

            L 1 Reply Last reply
            0
            • L Lost User

              I think a lot of people (even within the community) mix up Computer Science with Programming. The former is a broad subject that demands sound knowledge in, mainly, logic and number theory, which are the building blocks for developing algorithms to solve problems(which is why computers were invented in the first place). The latter is merely a tool to achieve the problem solving. Note, I am not saying it is inferior. Programming is what sets off a lot of us into the former domain as we can literally see things happening, as opposed to writing and thinking in Greek, but that doesn't take away from the fact that it is merely a means to an end.

              ...byte till it megahertz... my donation to web rubbish

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #6

              I've known many people who are good at Computer Science but suck at programming. And I don't think that's very strange, there is a lot more to real life programming than some big O or big theta.

              L 1 Reply Last reply
              0
              • L Lost User

                I've known many people who are good at Computer Science but suck at programming. And I don't think that's very strange, there is a lot more to real life programming than some big O or big theta.

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #7

                Yup, I too have known (know) such people. However, I have also seen(at least in my sample size) that a CS guy stops sucking at coding a lot faster than a coder being able to do even something as simple as analysing the complexity of his code.

                ...byte till it megahertz... my donation to web rubbish

                L 1 Reply Last reply
                0
                • D Distind

                  I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

                  R Offline
                  R Offline
                  realJSOP
                  wrote on last edited by
                  #8

                  Knowing "the basics" allows you to step comfortably outside the framework-de-jours, and get the job done. Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Knowing "the basics" allows you to think outside the box and approach a given problem from multiple (and wildly different) directions. What are the basics? If you ask 1000 programmers, you'll get eight different answers (sorry, that's a computer joke), depending on their level of experience and when they started coding.

                  .45 ACP - because shooting twice is just silly
                  -----
                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                  -----
                  "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001

                  L I M B 4 Replies Last reply
                  0
                  • D Distind

                    I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

                    T Offline
                    T Offline
                    Tomz_KV
                    wrote on last edited by
                    #9

                    The definition of basics probably changes with time. It might be binary calculation and machine assumbly a long time ago. But now it becomes very broad depending on what areas of computing.

                    TOMZ_KV

                    K 1 Reply Last reply
                    0
                    • L Lost User

                      Yup, I too have known (know) such people. However, I have also seen(at least in my sample size) that a CS guy stops sucking at coding a lot faster than a coder being able to do even something as simple as analysing the complexity of his code.

                      ...byte till it megahertz... my donation to web rubbish

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #10

                      I haven't seen any stop sucking, but I'm glad to hear it's possible :)

                      S 1 Reply Last reply
                      0
                      • R realJSOP

                        Knowing "the basics" allows you to step comfortably outside the framework-de-jours, and get the job done. Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Knowing "the basics" allows you to think outside the box and approach a given problem from multiple (and wildly different) directions. What are the basics? If you ask 1000 programmers, you'll get eight different answers (sorry, that's a computer joke), depending on their level of experience and when they started coding.

                        .45 ACP - because shooting twice is just silly
                        -----
                        "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                        -----
                        "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001

                        L Offline
                        L Offline
                        Luc Pattyn
                        wrote on last edited by
                        #11

                        John Simmons / outlaw programmer wrote:

                        If you ask 1000 programmers, you'll get eight different answers

                        Actually it is the other way around, when you ask eight programmers you get at least 1000 different answers. :)

                        Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

                        Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

                        R 1 Reply Last reply
                        0
                        • R realJSOP

                          Knowing "the basics" allows you to step comfortably outside the framework-de-jours, and get the job done. Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Knowing "the basics" allows you to think outside the box and approach a given problem from multiple (and wildly different) directions. What are the basics? If you ask 1000 programmers, you'll get eight different answers (sorry, that's a computer joke), depending on their level of experience and when they started coding.

                          .45 ACP - because shooting twice is just silly
                          -----
                          "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                          -----
                          "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001

                          I Offline
                          I Offline
                          Ian Shlasko
                          wrote on last edited by
                          #12

                          John Simmons / outlaw programmer wrote:

                          If you ask 1000 programmers, you'll get eight different answers (sorry, that's a computer joke)

                          Nice... And anyone who didn't immediately "get" that, doesn't know the basics :)

                          Proud to have finally moved to the A-Ark. Which one are you in?
                          Author of the Guardians Saga (Sci-Fi/Fantasy novels)

                          1 Reply Last reply
                          0
                          • R realJSOP

                            Knowing "the basics" allows you to step comfortably outside the framework-de-jours, and get the job done. Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Knowing "the basics" allows you to think outside the box and approach a given problem from multiple (and wildly different) directions. What are the basics? If you ask 1000 programmers, you'll get eight different answers (sorry, that's a computer joke), depending on their level of experience and when they started coding.

                            .45 ACP - because shooting twice is just silly
                            -----
                            "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                            -----
                            "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001

                            M Offline
                            M Offline
                            Maximilien
                            wrote on last edited by
                            #13

                            John Simmons / outlaw programmer wrote:

                            sorry, that's a computer joke

                            and if you don't get it, you don't know the basics ? ;)

                            Watched code never compiles.

                            1 Reply Last reply
                            0
                            • L Luc Pattyn

                              John Simmons / outlaw programmer wrote:

                              If you ask 1000 programmers, you'll get eight different answers

                              Actually it is the other way around, when you ask eight programmers you get at least 1000 different answers. :)

                              Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

                              Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

                              R Offline
                              R Offline
                              realJSOP
                              wrote on last edited by
                              #14

                              Right. I actually typed it that way to see if anyone would catch it. :)

                              .45 ACP - because shooting twice is just silly
                              -----
                              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                              -----
                              "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001

                              1 Reply Last reply
                              0
                              • R realJSOP

                                Knowing "the basics" allows you to step comfortably outside the framework-de-jours, and get the job done. Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Knowing "the basics" allows you to think outside the box and approach a given problem from multiple (and wildly different) directions. What are the basics? If you ask 1000 programmers, you'll get eight different answers (sorry, that's a computer joke), depending on their level of experience and when they started coding.

                                .45 ACP - because shooting twice is just silly
                                -----
                                "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                                -----
                                "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001

                                B Offline
                                B Offline
                                Blake Miller
                                wrote on last edited by
                                #15

                                Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Exactly, instead of waiting until it is 2 weeks before the release and deciding to run a performance validator which invalidates 6-12 months of development effort!

                                T 1 Reply Last reply
                                0
                                • C Chris Maunder

                                  It comes down to realising that every instruction you ask the machine to execute has physical implications: memory allocation, CPU cycles used, power consumed, screen space needing to be redrawn. For me the basics are understanding how a computer actually does stuff, and asking the computer to do this in a sensible way by following sensible, tried and true patterns and using efficient algorithms. Tied closely is understanding the fundamentals of the framework and library you are using so you can colour your judgement calls appropriately. After this there's the level of how you actually write code. Architecting, Testing, code cleanliess and maintainability. Basically: don't be selfish and write code only for yourself. Write it for others.

                                  cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                                  M Offline
                                  M Offline
                                  Member 96
                                  wrote on last edited by
                                  #16

                                  Quaint. ;)


                                  “If you want to build a ship, don't drum up people together to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea” - Antoine de Saint-Exupery

                                  1 Reply Last reply
                                  0
                                  • B Blake Miller

                                    Knowing "the basics" allows you to consider memory consumption, performance and maintainability as you write your code. Exactly, instead of waiting until it is 2 weeks before the release and deciding to run a performance validator which invalidates 6-12 months of development effort!

                                    T Offline
                                    T Offline
                                    tom1443
                                    wrote on last edited by
                                    #17

                                    IMHO the best developers are a mix of: - implementation knowledge - IDEs, frameworks, version control, etc. - theory (the comp sci thing) - technical writing and presentation skills, the ability to sell an idea - interpersonal skills and ability to mentor - the mindset that simple is better, and the methodology or language du jour is not always best

                                    1 Reply Last reply
                                    0
                                    • T Tomz_KV

                                      The definition of basics probably changes with time. It might be binary calculation and machine assumbly a long time ago. But now it becomes very broad depending on what areas of computing.

                                      TOMZ_KV

                                      K Offline
                                      K Offline
                                      kerrylancaster1
                                      wrote on last edited by
                                      #18

                                      Perhaps 'the basics' (be it Computer Science or Programming) begin with understanding the five basic functions of a CPU, which are: 1. Input/Output (read/write) 2. Program Control (branch, jump, compare) 3. Arithmetic (add, subtract - everything else stems from those two) 4. Data Transfer (load register / store register / move / etc) 5. Logical (boolean operations including bitwise functions like OR/XOR and Shift) Or perhaps understanding the four basic components of a desktop computer: 1. Input devices (mouse/keyboard/barcode scanner/etc) 2. Output devices (printer/monitor/etc) 3. CPU (includes GPU now) 4. Storage Devices (disk/CD/DVD/Thumb Drives/etc) Of course, you could throw in the things I had to learn in college, like Hollerith Code, Wiring boards in IBM Accounting Machines (an early form of "programming"), Bios on Charles Babbage and Alan Turing, etc. But the VERY MOST basic of 'the basics" is this: totally understanding the friggin problem you are trying to solve. Programming is not an end unto itself. And Computer Science is not a science devoted to its own sphere of existence.

                                      1 Reply Last reply
                                      0
                                      • D Distind

                                        I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

                                        A Offline
                                        A Offline
                                        Alan Balkany
                                        wrote on last edited by
                                        #19

                                        The top of the list is data structures. Then basic algorithms. You should know the tradeoffs between choices of data structures and algorithms. Generally useful techniques: Hashing, state machines, design of a GUI that responds to keyboard and mouse events in at least one language. For math, geometry seems the most generally useful, followed by linear algebra and probability. Graph theory helps with abstract reasoning about connections (which is often useful) but isn't essential. If you're doing engineering/technical programming then calculus and numerical methods. Basic software engineering: Object-oriented programming (virtual functions, inheritance, & polymorphism), and function-oriented programming (the mark of a beginner is 200-300+ line functions). Hexadecimal, binary, ASCII, and Unicode. Boolean operations.

                                        1 Reply Last reply
                                        0
                                        • D Distind

                                          I was looking over the newsletter this morning and caught this posting: New Generation does not realy understand computers[^] Which has left me wondering what exactly the basics are. I understand the concepts behind computers from the basic circuits and bit math, up though general language concepts and framework use almost entirely from my education. I can take a given concept and implement it in at least four languages off the top of my head, not counting C# and VB.net as separate. But I will admit file parsing was passed right over in my program(Software Engineering rather than Computer Science). So what exactly are the basics of computer science? I figure having a clue here may help those of us who are that generation avoid things like this in the future.

                                          E Offline
                                          E Offline
                                          englebart
                                          wrote on last edited by
                                          #20

                                          One basic: understand (roughly) how your code is implemented in the memory at execution time. (Arrows and boxes on a whiteboard suffice) e.g. I saw some code the other day that probably created 5-10,000 string objects when it could have used a single dynamic buffer with maybe a single re-alloc. It was simple to read the algorithm, but would not scale well.

                                          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