Does Construct 2 teach good programming thinking?

0 favourites
From the Asset Store
Casino? money? who knows? but the target is the same!
  • I'd like to address the questions in the title and below to teachers and developers alike. I'm really curious about this topic, especially since there was a mention in the forums a while ago, when someone said that Construct 2 teaches bad programming practices.

    What is you experience regarding the programming knowledge (or computational thinking) you learned from using Construct 2? Do your students or you benefit from that knowledge? If you tried other programming methods after Construct 2's visual event system, what was your experience? Did you felt yourself a bit familiar in the new environment?

    Thank you for anyone who can spare the time to answer these questions.

  • Well that's a nice question.

    I am with programming many years already (you can check my experience on my online CV BackendFreak.com - it's not really up to date but still) and with Construct 2 only a year (but intensive ). The first thing to mention is that even though I am fluent in direct programming I love making apps with C2 because it saves you enormous amount of time comparing to normal coding.

    If you ask about programming thinking then I would say - yes. Programming is basically a specific logic/way of thinking. And C2 has that logic. So for newbies it is pretty cool to start with C2 and then go to coding. After you got familiar with C2, you understand what are conditions (if statements), functions, arrays etc. So once you jump into programming, this knowledge is very useful.

    But if you ask about good programming practices, then I'll rather say - no. In real programming one of the most important things are encapsulation and semanthic. I don't see anyone talking about that in C2. I see people code snappets on the forum which are really far from or even opposite to what a good programming practice is about.

    I'm working now on MoModth, and I really try to make it as much as possible encapsulated and semantically correct. And it is possible but I really struggle sometimes to connect things in the smart and "clean" way. C2 doesn't have features which would let you organize your code/events in the way that you could say it's a very good programming practice. Functions are always global, you almost can't manage groups (besides toggeling), can't include event sheets by events etc...

    So again. Yes C2 helps you with understanding what programming is about, but C2 is just another layer over programming language so obviously it has limited possibilities. With raw programming you have to take care of way more things around but it also takes much more time. I'm not saying that C2 is teaching bad practices... it just doesn't teach good ones, because it's simply not a direct programming.

    I'd say, that if you make your C2 events as much encapsulated and semanthic as possible then you do the most what's possible. There is simply no way to learn programming patterns and other good programming techiques with C2, because C2 does not have such low level possibilities.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • glerikud

    Hey there! That's a hefty question but I will try and keep it short and sweet.

    In general, I think Construct 2 does a great job of getting into programming/thinking. Like the response above, he feels like some people aren't doing certain techniques just because people aren't talking about it but we most certainly are! Most of us that are using some of the techniques you would see in other languages, are busy and don't post much about it.

    Say the port I'm doing now which is a roguelike shooter (Relic Hunter Zero), I've been trying to be really good with where I am putting my code. Before I was bad at putting Global variables all over in different sheets, but over time with C2 it has slowly taught me to be more organized with code which a lot of other languages I don't get to because I'm too worried about the code not working or the syntax being wrong. I will start writing some functionalities and once I can tell it's getting big, start a new Sheet for specific functionalities (I have a sheet for Controller controls, sheet for Keyboard/Mouse, a sheet for Shooting functions, sheet just for Guns and characters, etc).

    So to stop from going on too much, I think it's a great learning tool and believe you can truly learn some great things working in C2.

    And our community is great!

  • I love making apps with C2 because it saves you enormous amount of time comparing to normal coding.

    Is it still true if you are using popular frameworks or a well-know engine like UE4 or Unity?

    Also, if I understood your post right, you are saying that if someone gets familiar with C2, it's easier for them to jump over to traditional languages?

    And our community is great!

    True. It's the best I've seen so far. It's amazing that how helpful the people are whenever they are on this forum or on Facebook or in a Skype group, etc.. C2 has it's magic

  • > I love making apps with C2 because it saves you enormous amount of time comparing to normal coding.

    >

    Is it still true if you are using popular frameworks or a well-know engine like UE4 or Unity?

    Of course. Every engine saves your time comparing to pure coding. Even game dev libs like CreateJS saves you a lot of time. But still not as much as C2.

    Also, if I understood your post right, you are saying that if someone gets familiar with C2, it's easier for them to jump over to traditional languages?

    Yes exactly. It's because you are already familiar with the programming logic/thinking and have some basic knowledge like what functions are etc. So yes it is easier to jump over to traditional programming after you are familiar with C2. Not saying it will be super easy, but still easier.

    I do recomment everyone to go throgh some programming tutorial just to get a point of what is going on there below. Even if you don't plan to code as proffessional, go and read some JavaScript tutorials. "With knowledge comes understanding" - grab as much as you can .

  • I don't use C2 in teaching, but my feeling is that C2 is NOT a good learning environment by default. I can see how a good teacher could utilise it in a structured learning plan, but as a standalone tool, no.

    Why not, it's too forgivin in many ways - it enables quick and dirty coding and coding by hacking. I may be old-school but I still remember being taught that you should have your code written on paper before you ever touch a keyboard. Okay that was more decades ago than I want to admit, but formal processes, logic and structures are important which C2 doesn't inherently force on you... but then it shouldn't.

    So my opinion, C2 does not teach necessarily teach you to code well, it does empower you to start coding and doing something (like basic in old days) but C2 is hugely enhanced if you already know how to code well (whether formally taught or not).

    PS: just to emphasise, a good teacher can make anything work

    PPS: scratch is a much better learning tool for coding than C2

  • I may be old-school but I still remember being taught that you should have your code written on paper before you ever touch a keyboard.

    That reminds me my college times . Kinda hard times but fun when I look back now.

  • Why not, it's too forgivin in many ways - it enables quick and dirty coding and coding by hacking.

    Well, yes. If the students discover the software by themselves and the teacher won't oversee their works/projects (even the ones they make at home) this can be a problem. But this can be a problem in any environment in my opinion.

    PPS: scratch is a much better learning tool for coding than C2

    One of the big differences is that Scratch is a LPE (learning programming environment), so it was designed to teach programming. While C2 is a game engine and it was designed to create products with it. The thing is, that C2 is so easy to use that it can be used in education too.

    But if a student won't go forward to a university or won't extend his/her knowledge in programming then staying with the software they learned with can be a big difference. It's unlikely that a high-school student will learn how to code a software from ground up in school using traditional languages. Let's say the class learned with Scratch. The student will be able to create small projects and share them online for remixing. But if they used C2, then the students can make games or apps, so it's not necessary for them to move forward if they are the designer types. Most of the students won't learn coding by themselves and most of them won't even practice what they learned.

    I'm not saying that C2 can be the solution for everything, I'm just throwing some thoughts in. However I'd be interested in why did you say that Scratch is the better tool for learning (even if it is, even if it's not). Can you elaborate?

    That reminds me my college times . Kinda hard times but fun when I look back now.

    These time are always fun to look back. But when we were there... wasn't so funny.

  • When I was still 14 Visual Basic was my first programming language then after a year I found Construct 2. The knowledge you get from other programming languages makes construct 2 easier especially when visual basic is like an english programming language and almost similar to C2. But I noticed now in my college year that Construct 2 exposure doesn't help me in learning HTML+Javascript, C++ or anything for C2 is very simplified that it skips the other important fundamentals in programming. But the good thing about learning C2 is that your mathematical and logical thinking is improved in other Programming Languages, for example the variables and formula coordination like a+b+c, a<0, a=a*b+1 or sin()cos(). Mathematical and Logic are all the same for every programming language so this is a +1. And C2 also gives me the idea of "If", "Else", "Else If", "While", "For", "For Each", "Repeat" even better.

    But totally I believe that learning first a programming language makes your life even easier in C2 than it already is but learning C2 as a start in learning other programming languages is kind of ineffective except for the other things. But this is just my opinion.

  • The first time I put my hands on C2 I didn't know how to code except had some BASIC knowledge. At the same time I started learning C# and the Object concept was very abstract to me, but C2 helped me a lot in understanding this concept. Overall, I think C2 is good for understanding the concept of objects, variables, loops, conditions, arrays, even functions to some extent. I can't tell if it teaches good programming practices since I'm no good in any other real programming languages, but it certainly helps a lot.

  • But totally I believe that learning first a programming language makes your life even easier in C2 than it already is but learning C2 as a start in learning other programming languages is kind of ineffective except for the other things. But this is just my opinion.

    Thank you for sharing your experience. Did you learn C2 in an autodidact form, or did you have help from an other person?

    The first time I put my hands on C2 I didn't know how to code except had some BASIC knowledge. At the same time I started learning C# and the Object concept was very abstract to me, but C2 helped me a lot in understanding this concept. Overall, I think C2 is good for understanding the concept of objects, variables, loops, conditions, arrays, even functions to some extent. I can't tell if it teaches good programming practices since I'm no good in any other real programming languages, but it certainly helps a lot.

    This opens up a whole new category for me. It seems now (based on your input) that C2 can be used not only as a learning tool for beginners, but also as a side-by-side method to help programmers understand what OOP is.

  • glerikud For me it helped understanding OOP because I'm more of a visual person than an abstract thinker.

  • glerikud - I am only self-taught, it was more comfortable for me that way.

  • C2 is very simplified that it skips the other important fundamentals in programming

    Could you elaborate on what fundamentals your are talking about ?

  • Programming thinking can mean a few things.

    I think Construct 2 is an fantastic way of learning/teaching logical, algorithmic, and math based approaches to problems. There is a certain mindset programmers need that one can develop with Construct where you work with the fact that computers will do exactly what you tell them to, nothing more and nothing less, and you have to put that logic ahead of your own.

    Construct 2 will not teach other programming essentials like double checking syntax obsessively, clean code, and memory management among other things. It is very forgiving in that sense. How much someone relies on behaviors and pre-made examples without attempting to understand how or why certain code works could also limit how much is learned.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)