Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Pseudo-code and flow chart algorithms

Just to help relate my background in technology started in electronics back in 1985 and continued in all directions from programming to building systems and tech support over the years. I have seen how many different technologies develop, change, and are implemented into many products over the years.

In order for anything in life to be successful you need a solid foundation and all the preparation work done before the actual work can even begin, whether it be in cooking, painting, or coding. Today many industries have websites, CMS, iOS, OS, apps, APIs, software programs, continuous new business models of all kinds, and more to come in the future not even invented yet, that help improve our daily life in many ways. I feel the one common denominator is understanding basic logical flow of the code to make sure it is accessible on the most devices and for as many users as possible utilizing the least amount of resources.

The best way to do that is first create and follow good pseudo-code and flow chart algorithms in the foundation of your project. Reflecting back on those will make it a whole lot easier to change and upgrade in the future no matter what code you are using, or different new platform not even invented yet as well.

I am now reviewing "Teaching programming with objects" by Geoffrey G. Roy and Jocelyn Armarego from the School of Engineering Science at Murdock University to help learn more about pseudo-code in object-oriented programming aka OOP models which references P-Coder. If you have problems working with any language or flow of anything in technology then going back to the basic flow of how you want your final project to be starts here in pseudo-code followed by good flow chart algorithms.

In college we were taught procedural languages aka mainly C, and then my direction went more towards building systems and tech support than learning OOP from scratch over the years. Now I finally realize from a teamtreehouse example how OOP is closely related to the flow in video game technologies. I already knew how OOP has expanded as well. The mention of website mockups reminded me of how important pseudo-code and flow charts were helpful, so I went back to those basics this time applying them to OOP as I work on deciding if I want to be a designer or developer and in what industry.

What do you think about this and do colleges or high schools teach pseudo-code and flow chart algorithms nowadays when working with OOP or other models in technology?

3 Answers

James Barnett
James Barnett
39,199 Points

do colleges or high schools teach pseudo-code and flow chart algorithms nowadays

I don't know if they do, no online programming startups seem to cover it. I think this is a bit of a shame working out logic of an algorithm using pseudocode & flow charts rather than just starting typing is a really good practice for any non-trivial algorithm.

Took computer science 1 and 2 last year in college. Pseudocode and flowcharts were taught. Pair programming was encouraged in computer science 1.

That's great :)

If you are new to programming and now have many languages to choose from then I would think understanding the flow of how software, apps, etc work is a good start before diving into coding. Even though it was not OOP at the time knowing what the program was supposed to do from start to finish made it easier to decide what language to use for it. Nowadays there is so much code and models out there that the newbie would be very confused as to where to begin. I did not realize why I was having such a hard time, since I know how to understand code or can figure it out no matter what code it is, and even edit it, but then I got lost in the whole flow of it as to how it all worked together.

Let's go offline for a minute. When I paint a room I don't just start painting. I assess how it has to be cleaned, what repairs have to be done, then what color and texture is going to be used or if a design also important, then decide what paint brushes and other tools are needed for the project. I also do not want dirt and dust on my fresh paint or in it either so make sure the room is extra clean and can stay that way during the project, even if I want to use a fan. All that is prep work and takes more time and energy than the actual painting itself. It is a professional approach as well.

Same goes for any program or app or website even. You have to figure out what you want it to do and how it will flow in order to get to the output you want before you just start coding. You also have to care about resources not knowing if it will be used on a phone or tablet or laptop or cash register or TV or car function or who knows what in the future. How do you know what language to use aka syntax if you don't know what the program is going to do yet? As technologies change so fast I think it will be very important in order to keep up or update code that is already created. I don't have any syntax of 10 different languages memorized in order to decide what to use for what project. I like to know how others do it without any flow chart at all.

Earlier in the year I was watching a major convention in Sydney where Cisco was talking about everything being connected to the internet in the future, so I feel the logic of how any code flows becomes more important when you don't know how it will be applied in everyday life in the future. Nowadays when creating an app or whatever type of program we have to think more about it's use tomorrow than just today.

A new car looses value as soon as you drive it off the lot, I think in the same way as when a new app is being created, a new idea on how it will be used comes up before you can get it out on the market. You, or someone else, can change your code much quicker to adapt to such changes if you have a good foundation to relate to, or else you might be chasing your tail trying to keep up with 'the next big thing' lol. I am really more talking about how to structure your design or development career in such a way as to keep up with the unknown future uses of it. To be more successful we have to think long term of the unknown in technologies, so focusing on how it all flows together, should be important first. That is my logic anyways based on so many things I have learned and seen for actually five decades.