Results 1 to 9 of 9

Thread: Practical Knowledge

  1. #1

    Thread Starter
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Location
    South Louisiana
    Posts
    11,712

    Practical Knowledge

    Many of you know that I'm 100% self taught, starting off mostly by following online tutorials and then receiving wonderful help from users here on VBForums.

    Now that I've made the career change and I'm programming full time I've noticed that there were some practical things that I did not know about that definitely presented a learning curve over the past year.

    The biggest being version control (e.g. git). I had never used version control before my career change and now that I've been using it a lot, I cannot believe I lived so long without it.

    I wanted to ask y'all a question. If someone approached you today who had decent programming skills but never worked full time in programming, what would be your number 1 piece of advise to tell them that they should start to learn before making the switch? Mine is, bar none, version control.
    "Code is like humor. When you have to explain it, it is bad." - Cory House
    VbLessons | Code Tags | Sword of Fury - Jameram

  2. #2
    Super Moderator jmcilhinney's Avatar
    Join Date
    May 2005
    Location
    Sydney, Australia
    Posts
    110,299

    Re: Practical Knowledge

    I have a Computer Science degree and we didn't learn about version control in that. I graduated in 1999 though, so maybe that's changed.

    My suggestion would be to learn a bit about design patterns and principles. When you teach yourself, you often learn to just do what works. It can seem silly to spend extra time trying to implement design patterns when they can even appear more complex to begin with. As complexity increases though, so too does the importance of well-designed code. Maintenance is pretty much always made easier as well. You don't necessarily have to memorise every possible pattern but having a general idea of what is good practice and the sort of thing you can do in any particular situation is a very good idea.

  3. #3
    Super Moderator FunkyDexter's Avatar
    Join Date
    Apr 2005
    Location
    An obscure body in the SK system. The inhabitants call it Earth
    Posts
    7,900

    Re: Practical Knowledge

    ^Yeah, that. And for an absolute beginner looking to dip their toe into good design I'd specifically steer them towards Interfaces and Abstraction. There's a bunch of basic principles but I feel like that's the one that's the key to so many techniques.
    The best argument against democracy is a five minute conversation with the average voter - Winston Churchill

    Hadoop actually sounds more like the way they greet each other in Yorkshire - Inferrd

  4. #4
    Administrator Steve R Jones's Avatar
    Join Date
    Apr 2012
    Location
    Largo, FL.
    Posts
    1,826

    Re: Practical Knowledge

    Haven't you learned a lot from helping people here on VBF?

  5. #5

    Thread Starter
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Location
    South Louisiana
    Posts
    11,712

    Re: Practical Knowledge

    @JMcIlhinney and @FunkyDexter - Great points!

    @Steve - I would say I've learned more by helping people here on VBForums than anywhere else. But all in all I'd say what I learned was mostly technical know how so I missed some of the more practical concepts like version control, (good) design patterns, (purposeful) architecture, etc.
    "Code is like humor. When you have to explain it, it is bad." - Cory House
    VbLessons | Code Tags | Sword of Fury - Jameram

  6. #6
    Superbly Moderated NeedSomeAnswers's Avatar
    Join Date
    Jun 2002
    Location
    Manchester uk
    Posts
    2,660

    Re: Practical Knowledge

    Yeah as you become a competent programmer design patterns, using frameworks and using different tools and languages in combination particularly in the web world, are were you can make the biggest differences in your ability to design and create good quality software.

    I have been learning CQS (Command Query Separation) which is a more limited (and by all accounts nicer to use) version of CQRS for use in fully cloud based micro services's.

    Its not something i am used to and programming in a cloud first way using things like Docker is a bit weird but i am slowly getting my head around it.
    Please Mark your Thread "Resolved", if the query is solved & Rate those who have helped you



  7. #7
    PowerPoster PlausiblyDamp's Avatar
    Join Date
    Dec 2016
    Location
    Pontypool, Wales
    Posts
    2,458

    Re: Practical Knowledge

    I would say the two things that are of real importance on a practical level are the ability to debug code and think through a problem before mashing keys on a keyboard.

    I am not saying that people need a hugh functional spec or a massive design document before coding but the realisation that even a few minutes thinking about the general shape of a problem and a comming rough potential outline of how to approach a solution makes all the difference. Even having the vaguest of outlines gives you the ability to write code with a purpose, of course the code will change and evolve but that initial "plan" makes everyting so much easier.

    A basic grasp of debugging and the capabilities of whatever IDE you use to help you debug is another skill that people should be taught. The number of questions that crop up in these forums that are basically "I wrote code and it doesn't work, can you fix it?" and not only has no attempt been made to debug it but the entire concept of setting a breakpoint and stepping through to compare what is happening with what is expected seems completely alien to the poster....

    Decent source code control has already been mentioned but is an invaluable tool even for solo developers coding as a hobby, again people seem to put so much effort into complicated and convoluted solutions to avoid learning a basic version control tool....

  8. #8
    Karen Payne MVP kareninstructor's Avatar
    Join Date
    Jun 2008
    Location
    Oregon
    Posts
    6,684

    Re: Practical Knowledge

    Several items to consider

    • I agree with understanding design pattern then when it's appropriate to use a specific pattern.
    • Have a solid understanding on local and remote debugging coupled with restrictive environments
    • Proper testing, TDD, Gherkin for instance
    • Staying relevant e.g. a developer job is desktop development, work on web technologies, asynchronous code flow, scripting. Exploring things like Entity Framework Core
    • Hone technical and business writing skills which usually means meeting and interacting with clients.
    • Teach by creating say a GitHub repository and write an companion article on a specific topic. One might learn they use a specific code pattern that works but unsure why while writing an article can bring a better understanding and in turn to other developers.

  9. #9
    MS SQL Powerposter szlamany's Avatar
    Join Date
    Mar 2004
    Location
    Connecticut
    Posts
    18,263

    Re: Practical Knowledge

    @dday9 - at first I was surprised to see version control so high your list, and then I recalled that back in the 1980's not only did I run a team of six developers, but I also had a full time librarian. Of course, back then the library was magtapes - with write rings! Not only was she in charge of mundane daily backups, but also in charge of creating release tapes for clients and what not.

    In my mind, though, source control is more a business continuity / disaster recovery tool. Super required - but not so much for your coding skills, more for the survival of your coding efforts. Although the ability to compare prior source releases does bleed into debugging...

    ...which I would say is almost top of my list.

    Back 20 years ago, I did a gig for about 6 months with Anthem Blue Cross (USA mega-health insurance company). Coders worked Monday to Thursday on their own code and then Friday was code review day. All the coders would look at all the code changes made that week by all the other coders (source control very required for this!).

    That code review really stuck with me. I find that I typically write a few lines of code, execute the program, and debug my way through to verify the code best I can. These days I'm nearly 100% JavaScript, so I find myself running the web app, breaking at the new code spot, and using the CONSOLE window to further develop new code to paste back into the source.

    I've had lots of programmers work for me over the years. I've always had a hard time dealing with those types that write tons of new code without executing and then struggling through review and debugging.

    Which I guess leads into design patterns - as JMC and FD mentioned. Proper abstraction of functionality leads to both cleaner and easier to maintain code.

    And the more successful you are, the more code enhancements you should see. My clients have a huge appetite for changes and new features!
    Last edited by szlamany; May 9th, 2020 at 08:05 AM.

    *** Read the sticky in the DB forum about how to get your question answered quickly!! ***

    Please remember to rate posts! Rate any post you find helpful - even in old threads! Use the link to the left - "Rate this Post".

    Some Informative Links:
    [ SQL Rules to Live By ] [ Reserved SQL keywords ] [ When to use INDEX HINTS! ] [ Passing Multi-item Parameters to STORED PROCEDURES ]
    [ Solution to non-domain Windows Authentication ] [ Crazy things we do to shrink log files ] [ SQL 2005 Features ] [ Loading Pictures from DB ]

    MS MVP 2006, 2007, 2008

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width