Jump to content

New user here, my thoughts on learning programming and my plans for life


Recommended Posts

Hi all,

I'm 26 years old and I've been interested in programming since I was 10 or 11. In 2000/2001 our neighbour tried to teach me c++ but that didn't work. I struggled with Blitz Max when I was 15 and I couldn't write good programs. Things are different in 2017: I've taught myself how to build c++ applications in Linux and I know what tools to use and what tools to avoid. I use Code Blocks, whereas in the past I tried using Anjuta (garbage!) Emacs and Vi, none of which are acceptable for beginners. I also don't recommend automatic indenting, I find that these "aids" are counter-productive. It took many years of unnecessary stress and now I finally know what I'm talking about: I prefer c++ with Code Blocks and SDL2. I'd consider using Unity or Unreal in the future but for now I enjoy learning without too many assisted things.

Getting comfortable

I was sceptical for 15 years as to whether I could learn programming. There's too much conflicting information regarding how to do things, or what tools to use. Also, programming is unfairly stereotyped as being about "zeros and ones" and as a result many people think you need to be a hardcore autistic to gain any ground in programming, which is untrue. The main difficulty (besides the overwhelming possibilities of tools/languages) is simply that you cannot learn programming in high school. When I was in high school back in 2006, they only taught Microsoft Visual Basic and that was only in year 12, which is the 4th year of high school. If the government bureaucrats want students to learn properly, then they should teach programming in a wider sense. They should demonstrate the pros-and-cons of different editing tools, and c++ should be taught too - it isn't as hard as most people believe.

100 lines of code looks confusing to most people, if they're not familiar with programming. People don't understand that programming is structure: it is loops and function calls. A program can be broken down and understood as components, just like any other electrical system (SHOCK HORROR!) No-one becomes a genius programmer overnight. You have to start at the bottom, knowing your tools of choice and knowing what the scopes of your program are. Once a student understands that some parts of the program do not connect to other parts of the program, they can find problems much more easily. It becomes 1000x easier to understand. Every time someone talks of "learning to write code" they do damage to the reputation of programmers. There is no "code" there are statements. There is no "logic" or "system" there is program flow and loops. The sooner "normal" people become comfortable with programming the better things will be for everyone.

Another point I'd like to emphasise is the GNU Philosophy 

Quote

Free software means that the software's users have freedom. (The issue is not about price.) We developed the GNU operating system so that users can have freedom in their computing.

Specifically, free software means users have the four essential freedoms: (0) to run the program, (1) to study and change the program in source code form, (2) to redistribute exact copies, and (3) to distribute modified versions

Where did we come from to get to here

I believe that it's important to know where we came from. While I dislike Bjarne Stroustrup's style of teaching there is something in one of his books that I really liked, he dedicated one chapter to the history of programming. I thought that was really cool. Back in the day it was all academic people. Then in the 80s the games industry was almost exclusively men with long hair who lived off pizza and metal. When money and status is the motivating force that drives someone into programming or network administration, that is the wrong motivation in my opinion. My motivation for learning programming is because it's interesting. I also want to share my skills and publish software for free (with no strings attached) so that we don't have to rely on closed-source tools and see ads everywhere. The world has reached such heights of gluttony that competing requires one to be as shallow and selfish as possible. It's refreshing to go against the norm. The invention of computers and silicone chips was a great scientific advance that is supposed to benefit everyone. We should continue the tradition of helping people do stuff whether it's being entertained or sorting data, and users should always be the most important thing. The rabid commercialisation of the games industry has been a disaster in my opinion. I'd like to avoid paying for games as often as possible - that's why I support 0 A.D.

0 A.D.

I haven't managed to compile 0 A.D. yet, I need to try the nightly build next time or whatever it's called - the latest stuff from git/svn. I tried the package in the Fedora 25 repos with no luck, and I tried compiling the source but I never tried the latest build which I suspect is my problem. I don't have internet where I live so every time I want to download something or get support I have to get in my car and drive. I hope to go flatting in 2-3 months and perhaps get fibre via an ethernet cable for maximum speed.

Plans for 2017

I begin a programming course on the 27th of February and that course ends in December, basically I get a piece of paper which says I'm smart and I learn c# and Xamarin (Xamarin is for making android applications). I want to contribute to free software projects in my spare time, I'll start with bug hunting. I also like the idea of promoting 0 A.D. on other forums, something which I've already done lots of. Do not underestimate the value of marketing (eg. good, short videos, walk-throughs and screen shots)

I attached some photos just for fun.

hair_down_resize.jpg

she_cafe_30oct.jpg

ru_drink_small.jpg

sphinx_cat.jpg

foodies_small.jpg

Edited by jeffnz
  • Like 6
Link to comment
Share on other sites

There are a lot of books, tutorials, @#$% blogs or stupid explanations on how to code.  It really need persistence, dedication and patience as almost everything related with human life. 

If you want to get your hands on the code, start here: http://trac.wildfiregames.com/wiki/StarterTasks, 0ad (I hope somebody correct me if i'm mistaken) is developed on C++/C#(?) and the SpiderMonkey engine, which is JS. You need to know too how to handle XML files, plus tools like SVN/GIT, eventually, when you are more deeper with it i guess it will be needed to learn things about game programming.

Perhaps you could start with something simple like triggers, so you may get to know how 0ad works http://trac.wildfiregames.com/wiki/Triggers 

For building the game, i did it on Debian jessie, it went smooth, don't know really what happens on fedora 25, but try again http://trac.wildfiregames.com/wiki/BuildInstructions#Linux check dependencies, check everything you do and if you find yourself with no answer go to the IRC http://webchat.quakenet.org/?channels=0ad and ask or submit a ticket if you think is needed.

 

Edited by Itms
  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...

I bought a laptop for my course, it's an ACER with a solid-state HD and an AMD A4 processor. I was going to get the A10 but there aren't many being produced so I grabbed this one (the shop offered Intel i5 but it was more expensive if I wanted a solid-state HD with the i5). The shop I went to has decades of experience and the old geezer at the shop told me that the best ACER they sell is one called Travel Mate - that one is designed to be thrown into your backseat when you're in a hurry, it's an extra $300 in my currency so I went for the cheaper one. There are many budget laptops that are rubbish! Often the only thing protecting the components is a layer of plastic (when I hold my mum's HP I can feel the plastic flex in my and). More expensive laptops have a sheet of metal, and also metal hinges so the screen doesn't break ... I look after my stuff though so I'm indifferent. I think of electronics as being e-waste so I don't mind getting stuff that's slightly cheap and nasty. The Alcatel smartphone that I bought from Vodafone would have been the best thing 3 years ago, Apple would have sold it for over $1,000 NZD not too long ago, I waited and got similar specs for a fraction of the price. 2GB of RAM on a Android phone means you're using 85% of it at any given time, so it isn't great but it works for now and I'm actually trying to save money this year. When I was working 6 days a week I felt justified having a sports car, a bottle of Vodka whenever I felt withdrawal symptoms, and a few packs of cigars when I got stressed B) not any more though!

What do you guys think of AMD? Someone on my course was saying on our Slack.com channel that he doesn't like AMD, I didn't ask why I guess it's mostly opinion. AMD might not have the best electricity efficiency but they sell cheaper stuff, Intel seems to charge too much in my opinion. I have an AMD A-10 on my desktop so I thought why not have an A-4 on my laptop. AMD isn't known for mobile CPU but hey if I keep buying their stuff maybe it'll become more common.

  • Like 1
Link to comment
Share on other sites

@aaron03: Hi and welcome, we always like to welcome new contributers to the project. Have a look at our programming guide to get started, there are some links how to get the latest version (svn), starter task and submitting patches. Also feel free to join us on IRC if anything is unclear, or you might have other question about the game or java.

  • Like 1
Link to comment
Share on other sites

If I have any questions I'll take them to IRC first. I sat on the IRC channel a few days ago and no-one was talking, everyone was lurking lol

I disabled all the advanced water features and I only get 15 frames per second maximum, perhaps I should reduce textures too. The textures look very good! I flicked through the source files and realised that some components are specialised (eg. shaders, graphics technology). I think anyone who wants to work on this game has to be told exactly what files to look at.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...