OK, so... what now?

Started by
10 comments, last by hahajoker181 9 years, 7 months ago

OK, so I have an idea... and I know where I want to go with it. The problem is that I have no idea how to even start heading in the right direction for it. I'm not new to programming but I'm not particularly experienced with it either. The only languages I've ever actively screwed with myself are HTML and CSS. All fine and dandy, but not what I need, I think. What I have in mind is a personal project, so I do not want the suggestions of college thrown at me; I'll go when I want, if I want.

I have read the FAQ and see that C# and Python are good beginner points. Since my partner knows Python already, I'm going to screw with that first. However, I am a quick learner - and I do know some of Python already from him so I don't expect that to keep me busy for too long. I'm not going to try to jump in over my head but chances are, I will succeed in it anyhow. When I do, I'll take a step back and start again.

When I have Python, I'll tackle C#... question is, where should I look to learn these? Internet resources are a better bet for me, as I have no personal income right now and can't just go out and buy textbooks or whatever else.

Also, what's the general worth of ActionScript? What is it for, specifically? I've been told several times that, for what I would like to do, I need to learn it.

Advertisement

Welcome :)

Out of curiosity what is your personal project?

A fine online book is http://inventwithpython.com/chapters/. I found it considerably helpful when I was first learning python. There are a couple other books on that site as well,

such as http://inventwithpython.com/pygame/chapters/.

I can't speak to ActionScript or what may be a good resource for c#, but I'm certain other will.

I don't think anyone here is likely to recommend simply going to college as the answer, especially if you're not looking to find a career in programming.

Beginner here <- please take any opinions with grain of salt

The only languages I've ever actively screwed with myself are HTML and CSS.

HTML and CSS aren't programming languages. If you have ever used Javascript, that is a programming language.

When I have Python, I'll tackle C#

There's no need to plan to do both - they are both different tools, but both are powerful and flexible enough to make games. Yes, sometime down the road you might need to learn another language, but try not to lock yourself into a set-in-stone path until you have gained enough experience and knowledge to make an informed decision.

C# is not better than Python, Python is not better than C#. Neither is a stepping stone to the other - but both have enough similarities that learning one will help make learning the other easier, regardless of which you learn first. They also have enough differences that you have to invest time in learning each one individually in-depth to fully leverage their strengths.

Really, you could jump from language to language and you'd actually do yourself a disservice, if you aren't investing in learning at least one language really deeply. Unless you go below the surface level 'syntax' (visual presentation and layout) of languages, you can miss out in really learning important programming concepts.

I recommend choosing a language - whichever common main-stream language it might be - and sticking with it for at least two years; otherwise, if you switch languages only six months in, you haven't really discovered the language's strengths, even if you 'understand' all the surface-level 'features' the language might offer.

I have read the FAQ and see that C# and Python are good beginner points.

Yes, they are good languages to learn. But don't think of them as "beginner" languages that you'll discard later. They aren't. They are both languages with different strengths, and you'll probably find opportunities to continue to use them for years to come, regardless of how many languages you might know. Just because I have a screwdriver and screws, that doesn't mean I no longer use my hammer and nails.

However, I am a quick learner - and I do know some of Python already from him so I don't expect that to keep me busy for too long.

Learning what a class is and a function is doesn't even begin to scratch the surface of programming.

Syntax varies from language to language, and many concepts are shared between languages, but there is alot to learn programming-wise that has nothing to do with syntax.

Syntax tells you, "How do I write a piece of code in this language?". But you need to actually learn, "When should I write this piece of code instead of another piece of code, and how do I get all the pieces of code to flow together as a cohesive whole?".

Learning how to nail two boards together (syntax) doesn't tell you how to build a house. If you try to just wing it, the house will be all out of shape, the floors will probably collapse, the rooms won't line up properly, water will leak from the roof, the walls won't be straight, and everything will creak when walked on.

I've been told several times that, for what I would like to do, I need to learn [ActionScript].


You haven't actually told us what you're trying to do. wink.png For all I know, none of ActionScript, Python, or C# could be good choices.

+1 on what has been said: HTML and CSS are not programming languages. They are "structure and format" languages (but generally referred to as 'markup'). Programming languages center around flow of control (decisions, looping, data structures), whereas markup center around [static] organization and presentation.

But that doesn't matter.

So you're going to learn programming. Congratulations! If you happen to like it, it will be the most rewarding decision you have ever made. I have taught several programming classes and I can tell you what separates the winners from the losers is love, and little else. Unfortunately, you don't get to decide if you'll love it, you can only find out.

As for languages... Python sucks, C# rocks.

Why? Because I don't know the former, but I am expert at the latter (along with Java, C++, and others).

So this is a great introduction into the world of programmers, where you will find that we all discuss technologies with an almost religious zeal (or hatred). You cannot ask programmers which language is "better" unless you are an absolute genius at filtering out such zeal and finding a nugget of truth. Even if you are, you might meet your match when a clever zealot simply lists 10 ways one language is better than another, and it is all factually correct save for the fact that it does not mention the 10 ways the other language excels.

I don't know Python, and that's for a reason. I've been a consultant most of my life, and I've never found use for it. I am comfortable saying it's not as popular as others, and to some degree that matters--language support, online community, availability of tutorials and other help, even things like performance--the most used languages are often the best built and optimized simply because they have more minds on the job.

Having said all that... if my son were a bit older and wanted to learn to program, I would recommend Java. Java dev's make terrific money, you can build anything with it, it runs on almost every platform, and it's a solid, clean language. If you know Java, C# and C++ are just a hop (for the former) or a leap (for the latter) away, so you can rest knowing your skills are useful even when you're nowehre near Java.

Having said that, if you want to build a game and have decided to use something like Unity, you can't use Java. In this case, C# will be the best bet, and did I mention, the two are so similar you get all the benefits of Java by learning C#, except for the fact that you won't know Java. Languages are very similar, feature libraries are not.

In the end your choice of first language isn't that important. If you love programming, you will go on to learn others as and when necessary, and life will be good. I started on TRS 80 model 3 Basic, and although I do nothing like that now, starting there didn't hurt me a bit--save for the fact that when I mention it, it is fairly easy to guess my age :-)

Oh, and ActionScript... once upon a time, in a Flash dev tool far away (pre Flash 5), Macromedia used a completely home-grown, half-baked language. Eventually they struck upon the idea that since JavaScript (ECMAscript) was taking the web by storm, it would be cool if Flash used this langauge too. ActionScript was born; it is essentially JavaScript with some additions (and access to a lot of stuff in the Flash document).

It is a "scripting language," not a "programming language." I often discuss this distinction with others and it seems it is fuzzy, but I would say the following:
* Scripting languages are intended to give the scripter some level of control over a document or environment.

* Programming languages are intended to give the programmer control of a machine, either directly or through some intermediate, such as the Jave Virtual Machine.

The former is slow but usually easy to use for it's narrow focus; the latter is fast but generally harder to use.

Now that I've written a book, let me wish you good luck. I hope you love programming!


As for languages... Python sucks, C# rocks.

Why? Because I don't know the former, but I am expert at the latter (along with Java, C++, and others).

What_Meme.jpg


As for languages... Python sucks, C# rocks.

Why? Because I don't know the former, but I am expert at the latter (along with Java, C++, and others).

There was more text that came after...

Welcome smile.png

Out of curiosity what is your personal project?

A fine online book is http://inventwithpython.com/chapters/. I found it considerably helpful when I was first learning python. There are a couple other books on that site as well,

such as http://inventwithpython.com/pygame/chapters/.

I can't speak to ActionScript or what may be a good resource for c#, but I'm certain other will.

I don't think anyone here is likely to recommend simply going to college as the answer, especially if you're not looking to find a career in programming.

Thank you for the welcome and for the resources for Python. I don't believe I will personally use Python for this project (although I've seen Mogenar put together quite a few amusing little things with it). I may find that I enjoy Python more than I expect and try it anyhow, though. We'll see.

My project seems a bit silly, really... and why I kind of opted not to mention it in the OP. I've always been interested in programming but with no goal, I could never convince myself to sit down and actually learn the languages. This project gave me a goal, something to work towards with it. The project itself... have you ever heard of the Pokemon Mystery Dungeon series? Do you know of how the "dungeons" randomize between every single entry?

The game hooked me with the randomizing dungeons. I loathe exploring the same environment over and over but Mystery Dungeon took that out with the randomization factor. I want to learn how to program and duplicate that effect of randomizing an environment for exploration. When my Nintendo broke and I couldn't afford to replace it... I couldn't (can't) play the game any more because it's handheld only and there are no existing "fan" games.

...well, learning how to replicate the "mystery" dungeons is only step one. I want to build up a "PC" fan-game for PMD. That's the ultimate goal, my own personal project so I have a PMD that I can play on my laptop while I wait for the money to purchase a new DS. That's why it's a personal project (that and that I have absolutely no intent to try to make money off of this idea).

HTML and CSS aren't programming languages. If you have ever used Javascript, that is a programming language.

This is why I merely called them "languages" and not "programming". I know that they're both mark-up languages and not for programming at all tongue.png

There's no need to plan to do both - they are both different tools, but both are powerful and flexible enough to make games. Yes, sometime down the road you might need to learn another language, but try not to lock yourself into a set-in-stone path until you have gained enough experience and knowledge to make an informed decision.

C# is not better than Python, Python is not better than C#. Neither is a stepping stone to the other - but both have enough similarities that learning one will help make learning the other easier, regardless of which you learn first. They also have enough differences that you have to invest time in learning each one individually in-depth to fully leverage their strengths.

Really, you could jump from language to language and you'd actually do yourself a disservice, if you aren't investing in learning at least one language really deeply. Unless you go below the surface level 'syntax' (visual presentation and layout) of languages, you can miss out in really learning important programming concepts.

I recommend choosing a language - whichever common main-stream language it might be - and sticking with it for at least two years; otherwise, if you switch languages only six months in, you haven't really discovered the language's strengths, even if you 'understand' all the surface-level 'features' the language might offer.

Yes, they are good languages to learn. But don't think of them as "beginner" languages that you'll discard later. They aren't. They are both languages with different strengths, and you'll probably find opportunities to continue to use them for years to come, regardless of how many languages you might know. Just because I have a screwdriver and screws, that doesn't mean I no longer use my hammer and nails.

I plan to do both (and several more) simply because of the fact that I don't know which language will ring true with me. I do not intend to check out only the "surface" features and move on, however. I am all-too-aware of the hidden beauty under the surface of things (being a dog rehabilitator and trainer, that occurs quite often). I have no idea which language is the proper language for me and I intend to "dabble" until I find the one that sings. I may find that I absolutely love Python and want to build with that; in that, I would simply stick with Python and C# be damned. If I don't? Fine, there are many others to dance with. I'll keep dancing until I find the one that sings.

Short-time or no, I do intend to study these in depth. As I stated, I am an extremely quick learner. I also have no intention to stop learning a language simply because I moved to the next one. Chances are, I will schedule "Throwback" sessions where I skip my current-language-practice and study a different language. It breaks the monotony (which is something that would entirely destroy my focus and ability to learn, anyhow) and give me a break from my current work. (Something that I will, likely, need with my anxiety the way it gets.)

Learning what a class is and a function is doesn't even begin to scratch the surface of programming.

Syntax varies from language to language, and many concepts are shared between languages, but there is alot to learn programming-wise that has nothing to do with syntax.

Syntax tells you, "How do I write a piece of code in this language?". But you need to actually learn, "When should I write this piece of code instead of another piece of code, and how do I get all the pieces of code to flow together as a cohesive whole?".
Learning how to nail two boards together (syntax) doesn't tell you how to build a house. If you try to just wing it, the house will be all out of shape, the floors will probably collapse, the rooms won't line up properly, water will leak from the roof, the walls won't be straight, and everything will creak when walked on.

Learning the latter is what I intend to focus on more than anything. Knowing how is the easy part; knowing when, not so much. I also know that knowing how means absolutely jack if I don't know when to use it. I imagine part of that will come with experience in the language, though, yes?

You haven't actually told us what you're trying to do. For all I know, none of ActionScript, Python, or C# could be good choices.

I included my "project" in response to the post above yours smile.png

+1 on what has been said: HTML and CSS are not programming languages. They are "structure and format" languages (but generally referred to as 'markup'). Programming languages center around flow of control (decisions, looping, data structures), whereas markup center around [static] organization and presentation.

But that doesn't matter.

So you're going to learn programming. Congratulations! If you happen to like it, it will be the most rewarding decision you have ever made. I have taught several programming classes and I can tell you what separates the winners from the losers is love, and little else. Unfortunately, you don't get to decide if you'll love it, you can only find out.

As for languages... Python sucks, C# rocks.

Why? Because I don't know the former, but I am expert at the latter (along with Java, C++, and others).

So this is a great introduction into the world of programmers, where you will find that we all discuss technologies with an almost religious zeal (or hatred). You cannot ask programmers which language is "better" unless you are an absolute genius at filtering out such zeal and finding a nugget of truth. Even if you are, you might meet your match when a clever zealot simply lists 10 ways one language is better than another, and it is all factually correct save for the fact that it does not mention the 10 ways the other language excels.

I don't know Python, and that's for a reason. I've been a consultant most of my life, and I've never found use for it. I am comfortable saying it's not as popular as others, and to some degree that matters--language support, online community, availability of tutorials and other help, even things like performance--the most used languages are often the best built and optimized simply because they have more minds on the job.

Having said all that... if my son were a bit older and wanted to learn to program, I would recommend Java. Java dev's make terrific money, you can build anything with it, it runs on almost every platform, and it's a solid, clean language. If you know Java, C# and C++ are just a hop (for the former) or a leap (for the latter) away, so you can rest knowing your skills are useful even when you're nowehre near Java.

Having said that, if you want to build a game and have decided to use something like Unity, you can't use Java. In this case, C# will be the best bet, and did I mention, the two are so similar you get all the benefits of Java by learning C#, except for the fact that you won't know Java. Languages are very similar, feature libraries are not.

In the end your choice of first language isn't that important. If you love programming, you will go on to learn others as and when necessary, and life will be good. I started on TRS 80 model 3 Basic, and although I do nothing like that now, starting there didn't hurt me a bit--save for the fact that when I mention it, it is fairly easy to guess my age :-)

Oh, and ActionScript... once upon a time, in a Flash dev tool far away (pre Flash 5), Macromedia used a completely home-grown, half-baked language. Eventually they struck upon the idea that since JavaScript (ECMAscript) was taking the web by storm, it would be cool if Flash used this langauge too. ActionScript was born; it is essentially JavaScript with some additions (and access to a lot of stuff in the Flash document).

It is a "scripting language," not a "programming language." I often discuss this distinction with others and it seems it is fuzzy, but I would say the following:
* Scripting languages are intended to give the scripter some level of control over a document or environment.

* Programming languages are intended to give the programmer control of a machine, either directly or through some intermediate, such as the Jave Virtual Machine.

The former is slow but usually easy to use for it's narrow focus; the latter is fast but generally harder to use.

Now that I've written a book, let me wish you good luck. I hope you love programming!

Java is actually one of the languages that I'm particularly interested in and one that I think will serve me well. That is something I intended to learn to work in conjunction with other languages. If I don't find Python to be my cup of tea, I just might slip over to Java and learn it (considering it appears to be a great basis before learning C#?)

Thank you for the explanation about ActionScript. I did a (brief) research of it and was quite... confused by what I read, probably because I am an absolute beginner to this world. All I know is that I like love computers and that I enjoy manipulating pieces of code. I like making it do things I want it to do. I personally believe that I will absolutely adore programming. (Although I expect that the first many things I code will do absolutely nothing of what I want them to do.)

And thank you for the well wishes and welcomes <3

Python is a very fine language to start with for beginners. I did it back then even though I had played around with C++. The book below was introduce by a very good CS professor to me.

This book:

http://www.greenteapress.com/thinkpython/

In HTML and PDF is free. The book does not just teach you Python. In fact it teach you how to solve problems and get you started out as a problem solver(programmer).

I promise you that you will be a very happy person(or at least a coder) if you read that book and do all the exercises in it. You will for sure use the knowledge later on when programming or scripting.

ActionScript was used in Unreal 3.

Unreal 4 is now using Blueprints instead and raw C++ code. No more ActionScript that is.

You need to read the book in the link I gave you above and then you can without problems pick up other languages... Okay almost that is smile.png

On a sidenote then this book's way of thinking has helped me working/doing research in Java, C++, TorqueScript, PHP, JavaScript and HSL.

Read it tongue.png

Best,

"The only thing that interferes with my learning is my education"

Albert Einstein

"It is a miracle that curiosity survives formal education"

Albert Einstein

@ktanaqui


My project seems a bit silly, really... and why I kind of opted not to mention it in the OP. I've always been interested in programming but with no goal, I could never convince myself to sit down and actually learn the languages. This project gave me a goal, something to work towards with it. The project itself... have you ever heard of the Pokemon Mystery Dungeon series? Do you know of how the "dungeons" randomize between every single entry?

The game hooked me with the randomizing dungeons. I loathe exploring the same environment over and over but Mystery Dungeon took that out with the randomization factor. I want to learn how to program and duplicate that effect of randomizing an environment for exploration. When my Nintendo broke and I couldn't afford to replace it... I couldn't (can't) play the game any more because it's handheld only and there are no existing "fan" games.

That doesn't seem silly at all, I've certainly worked on (am working on) sillier things :P I find whatever keeps my motivation up to learn new things(programming/art/music, game design, etc) is be a perfectly fine goal in itself :). But, I'm in the same boat. If I'm just learning a programming language without a game or an app or something to apply it to, I lose interest and motivation really quickly. My only problem is my games are never finished, because as I learn how to do more, I want to implement more, expand things, make it all better :P It's a good problem to have though, as it keeps me driven to continue learning. Best of luck with your project!

Beginner here <- please take any opinions with grain of salt

Also, what's the general worth of ActionScript? What is it for, specifically? I've been told several times that, for what I would like to do, I need to learn it.

Let me start off with ActionScript since that's my bread and butter (so, obviously, take with a grain of salt)...

ActionScript is the language used to produce content for Adobe's Flash Platform which is a set of technologies that, as the name implies, evolved out of (and includes) Flash. Besides the Flash plugin (estimated to exist on 90%+ of all browsers regardless of OS), ActionScript is the language powering Adobe AIR. This is really just the Flash player beefed up with extra functionality so that your content can as a desktop or mobile app -- reading/writing to the file system, for example; something that a web plugin must never be allowed to do.

When I started, Flash was proprietary (first owned by Macromedia, then Adobe), but it has since gone through many facelifts and open-sourcery. These days you can go 100% open source if you want to create Flash/AIR content but the commercial version of the Flash IDE (the old-school, original editor), still has many features that make life a lot easier -- nothing you can't reproduce with clever ActionScript, but a time-saver nonetheless.

Even if ActionScript isn't your final destination, I highly recommend checking out FlashDevelop. Yes, it's best when used to produce Flash/AIR content, but it understands JavaScript, PHP, HTML, and a bunch of other languages and markup too. It also comes with useful plugins and is under regular development...your time learning it won't be wasted.

That being said, it's really important that you define what you want to do with the language rather than defining the language first and the project second.

For example, if you need to be able to store data locally on the user's computer (game progress, for example), you will be limited by the use of HTML5/JavaScript. Simply by virtue of being web technologies, they are greatly limited in what (if anything) they can access from the user's computer. This makes sense -- would you want some random web page reading your hard drive when you load it?

Context is also important. HTML5/JavaScript can be packaged into desktop/mobile applications similarly to the way Flash content can be packaged into AIR apps. Flash is also limited when running in a browser and for the same reasons, so whenever I start up a new project I start by identifying what I want it to actually do and only then do I start to plan around how that functionality can be achieved.

Eventually you'll know the language well enough to be able to produce content that runs both on the web and as a desktop/mobile app, so these dividing lines will start to blur more and more. This is true for both ActionScript and HTML5/JavaScript (you can use something like PhoneGap to package such apps as native/mobile). In fact, I'm pretty sure that clever coding can do this in many languages, I'm just extolling what I know best.

So...what now?

  1. Identify your project (often this is preceded by identifying the audience and the "problem" that you want to solve or address).
  2. Compile a list of technologies that can support what you want to do. Be sure to include drawbacks too (though it's a good idea to verify them as some people just seem to have an irrational hate-on for ________).
    Nothing wrong with C#, but it'll only run on iOS -- are you okay with such a limit? HTML5/JavaScript are a good option, but they are far from being a standard across browsers -- are you okay only running the newest 3D content in Firefox, for example? Are you okay with performance issues in Internet Explorer?
  3. Do some exploratory work. Your chosen language shouldn't be cryptic or obtuse -- is your aim to learn the language or to make something with it? If you spend more time working out the kinks in the language than creating the project, you're probably on the wrong course.

Despite my support for ActionScript, as someone who's trying to learn I would actually recommend HTML5/CSS/JavaScript. I say this because JavaScript is an ECMAScript language, as are ActionScript and Java. This simply means that the programming languages are formatted after the ECMAScript standard so they all look and feel very similar. Moving from JavaScript to ActionScript, for example, is about learning more advanced concepts, not learning a whole new language -- what you know about JavaScript transfers almost verbatim to ActionScript and Java. Moreover, the HTML/JavaScript combination is often mirrored in derivative technologies like Adobe Flex / Flash Builder which uses MXML for markup (like HTML/CSS), and ActionScript for control (like JavaScript).

Conversely, if you want to put the time in up front, you can learn ActionScript and then work backwards to JavaScript. I do this often and moving from ActionScript to JavaScript requires simply tamping down some of the more advanced concepts that I've learned. In fact, JavaScript can often be used almost verbatim as ActionScript code, that's how similar they are.

Good luck!

This topic is closed to new replies.

Advertisement