I would like to learn because it is fantastic and with this it can do everything that you want but i do not know where i have to begin
Please someone answer my question
the goal of this website is learn people how to program,right? Help me to improve me
I do not guarantee this is not the best approach, but I think you could start just trying to do the games. Python3 is probably the best language to learn, although opinions differ.
The first game is pretty easy but will push you to start coding. The basic code is already given to you and you have to complete it by translating a short âPseudocodeâ explication from the instructions to the language you chose (e.g. Python3). You will have to use Google to find explanations (as we all do daily). Here, you may want to look for something like âpython conditionalsâ (e.g. how to do something conditionally in Python).
You will most likely not get it from your first try. This is okay. This website is there for learning, which means failing. You can run test cases as many times as you want until you get it right.
Good luck!
Hi,
I do not know if starting with codingame with no pre knowledge is the best approach. It might end up very frustrating.
I am in a similar case than you. I started with online tutorials (a very complete one for Python in french, out of the website developpez.com - which i end up using for a school project). Such tutorials exists for most language for free around the web, i read one about c# more or less recently.
My advise would be to pick a language first (i heard a lot of ppl start with Python or Java), get a good tutorial with practical exercises (ideally based on a free IDE) (by tutorial i often mean âbigâ pdf documents 200 - 600 pages written by profs as online ressources gor their students). You usually dont need to do the whole tutorial at once. When it becomes too abstract, take a step back and exercises what you already learned.
This is where Codingame is very fun and useful. Itll âforce youâ to apply this theoritical knowledge, make you assimilate âfastâ what you learned and maybe confront you to a concrete use case to the chapters you gave up reading due to âtoo abstractsâ concepts. You can then go back to your tutorial and continue learning.
Its basically the iterative L&D â70-20-10â approach for self-study: 10% classroom learning (in this case, theoritical reading), 20% applied coaching (in this case, walkthrough exercises from the tutorial) and 70% learning by doing (codingame).
This seemd to work for me so far
@amin97mo : what is your mother tongue?
Prepare to spend a lot of time sucking and being terrible. That is like⊠the first thing you should prepare for. âIâm⊠going to be horrible at this for some time.â
Next step is: read. Read a fucking lot. Go to your library⊠and read books on programming. A lot of the books will be terrible. You wonât be able to tell either, until youâve read a lot of books. And youâll need to have read terrible books to be able to know they are terrible. It is part of the process of knowing good books.
As you do this, practice with the games here.
Also practice with silly little programs. Make a compression scheme program that works by taking the first character out of a file and putting it into the fileâs name (which⊠TECHNICALLY shows up like it is compressed under some ways of measuring hard disc usage). Make another compression program that is major heavy lossy and just deletes everything over 1KiB in a file (A Lossy compression guaranteed to have the file shorter than 1KiB!)⊠you wonât be able to decompress from the scheme though⊠but yeah.
Program silly things, work on the games⊠and read. Read some stuff that you just bring up around programmers to see if they know⊠or if they decide you need medication. It can be hard to tell at times. As if you talk about RFC 2795 they will not be thinking you need medication.
It also requires a lot of work. You know, not like getting a puppy, where you gush about cute they are and claim you will walk them and then ignore it about a month later.
Go to a bookstore or library and look at what books they have.
Most books have a lot of example code in them that lets you play around and expriment with. Most of the easy games here can be done with only basic programming knowledge and skill.
Almost every bookstore in the world has at least one book on Java.
Iâm not saying that Java is the best language , but it is easy to learn and very wel documented.
The choise of what language you use mostely has to do with what you want to do with it. If you want to get into web design , PHP will be a good choise , but for pc applications , java or C# will be a better choise.
If all you want to do is use it here , any of the supported languages will do , but i wouldnât recommend Bash.
I support your lack of support for BASH.
People only program in BASH ironically. So freaking ironically so much of the ironing in that ironic BASH programming.
Have a look at the Codecademy Python course.
It wonât teach you program but it might give you a good idea of the fundamentals all languages have.
- Variables
- Loops
- Arithmetic functions
- Conditionals
- Collections
ETC⊠(The basics we use everyday)
Then, when you choose a language and the books etcâŠ
You can build on the basics
People only program in BASH ironically. So freaking ironically so much of the ironing in that ironic BASH programming.
Well, the power of bash comes from composability. Some specific problems are actually easier with it. That said, I conccur that you are better off with pretty much anything else (Python!).
A lot of people are suggesting to start off with Pythonâand then possibly moving onto other languages⊠that isnât because Python is an inferior or inherently better language than all others.
There is strengths to being multilingual that any rather knowing programmer will be able to take skills from and do stuff with. Much like there are strengths to be multilingual with natural languages (People who defend only learning one language are freaking weird).
Typically the styles of languages that youâd be suggested to get a few (or at least one) in to better grok problems are:
- Stack based language, Forth, Postscript⊠Iâm tempted to say Prologâbut I donât know Prolog and I think I might be miscategorising it
- C-esque⊠this category tends to include C, Java, C++, Objective C, C# and others⊠but it also tends to also end up having Algo-68, Pascal and Delphi (even though those barely fit there)
- Line Noise (somebody give me a better name). Such as Perl or Bash/grep/awk or pdksh or tcsh or zsh⊠though Intercal would qualify for this categoryâbut uh⊠go with Perl5/Perl6 for this category
- Math Equation (there is a more correct name for this). Such as Haskell, F#, etc.
- Grouping Orientated (there is a more correct name). Common Lisp, Clojure, etc.
- Fungoid. Befunged and others based upon the whole Fungoid schemes
- An Assembler. You probably should only learn one really well, Iâd personally suggest 650*5xâbut that is due to my own biases on the matter. You can kind of guess what others are doing based on knowing one really well
- Python â this one does have a category, but it shares a category with COBOL⊠and I cannot recommend COBOL. I can only recommend running as fast as you can away from COBOL
- Templated language: PHP, RHTML, Mako, Jingo2, etc
- A configuration language: Lua, Batch, XML, JSON, etc.
- A âBasicâ: take your pick, Dark Basic, GW Basic, Hypercard, qBasic, Amiga Basic, Visual Basic.Net⊠this is mostly just so the people who learned on that donât seem as weird to you. I mean⊠they will still seem weird, but yeah.
- A virtual machine âmachine codeâ-- Parrot, JVM, CLI, etc. Honestly, these are really not that hard to learn (or at least JVM is) and it is nearly possible to write software programmed directly in the JVM machine code itself (with a bit of broiler plate code and something to pack all the files together).
- Some form of Squirrel (I believe this one is called RDBM Relationship DataBase Manager): PostgreSQL (Elephant Squirrel), MySQL (MY SQUIRREL! MINE! MINE!), SQLite (Tiny Squirrel⊠soooo smol!), Microsoft Access (this is a Squirrel, correct), Oracle (All seeing Squirrel), etc.
There are a lot of different types/styles of computer language. Knowing many of the different styles ultimately has you better able to use your preferred language in the long run.
Iâve also missed a few styles in this listâyou know on top of giving them all quite incorrect names.
Iâm probably old school. But to be a good coder, you have to be good at math.
âbut i wonât use math in my coâŠâ be good at math i said
âbut i donât see the pâŠâ BE GOOD AT MATH !!!
If you are good at math, you are a good coder. If you are a good coder, you are good at math.
Letâs clear this point : math and programming donât share the same knowlegdes base, itâs obvious. In math you have to know formulas, theorem and everything like that. In programming you have to know basic algorithms, how to use loops, how to use every library you know, âŠ
But the âway of thinkingâ is exactly the same.
- Slice the problem into littles problems
- Identify the first problem
- Select the more adapted tool to resolve it
- Use it
- Repeat
If you want to know if a teenager will be a good coder, just look at his/her math results and grades.
Some colleagues also tells me that good math/coders are also good at music. But i canât confirm that, i never tried
Now if you want to start in programming, just select a language. But iâm old school too for that, so my advice is to never never ever never ever F*CKING ever never OH GOD NO PLZ DONâT DO THAT start with a non typed language. Start with wathever you want (C, C++, Java, Pascal, Ada, C# âŠ), but donât start with a non typed language like javascript, python, ruby or php.
What? Python is a non typed language ? O_o
Since you can do this :
a = "test"
a = 10
This is a non typed language. Python is like javascript, ruby and php, non-compiled, interpreted and non typed language.
(maybe ânon typedâ is not the exact word, iâm not very sure of the english word for that. In french we call that ânon typĂ©â)
Itâs a typed language but not a strongly typed language.
You can compile Python code in an executable via a dedicated library.
This kind of feature is useful for example when you have to test if a variable contains data or not, itâs the None type job.
Ok so my advice is to avoid non strongly typed language when you want to start learning how to code. Just a vocabulary problem.
Iâm sure he understood what you meant and was just messing with you a little bit since youâre the almighty 1st
I understand why you dislike non strongly typed languages but hard languages like C are to be avoided too because of its limitations.
C is fine to learn simple algorithms on integer and array like basic sorts. But yes C is pretty bad when you have to deal with strings. C++ is better for that. Pascal and Ada are pretty fine too.
I love Java but i think it is a little bad to start to learn programming because of the âall is pointerâ behavior. C and C++ are good for this, you have to learn what is a pointer how it works.
Iâm pretty sure that amin97mo didnât grasp half of the information thrown here, because s/heâs a newbie. Trust my experience with my nieces, the only question to ask is: do you prefer [Frozen][1] or [Star Wars][2]? In fact, itâs a mostly pointless question, because Anna and Elsa are always picked over Rey.
Note: the book âReal World Haskellâ, which happens to freely available, has an [enlighting chapter about typing][3]. Regarding Python, it is a (great) dynamically-typed language. Describing it as non-typed is typical of people who dislike ducks.
[1]: https://studio.code.org/s/frozen/stage/1/puzzle/1
 [2]: https://studio.code.org/s/starwarsblocks/stage/1/puzzle/1
 [3]: http://book.realworldhaskell.org/read/types-and-functions.html
Iâve found the people better at learning new languages and art tend to be better at programming.
Math people tend to mostly be good at implementing previous solutions made (kind of⊠not really).
If you have somebody who is multilingual, it generally allows them to view programming as explaining something to the computer. Which⊠allows for some more interesting methodologies. With hacker things being treated mostly as language idioms and weirdness.
Which is why you cannot guess if a teenager will be good at somethingâas we donât value multilingual capacities in modern day society. Even though people honestly should.
The viewing it as a language kind of gets around the language being strongly typed or not strongly typed⊠and move more into âis this language awkward to talk to the computer with?â
Why do people keep using âa language can compileâ as proof it is a typed language?
Most machine code is a non-typed language. In fact, the variables in Machine Code/Assembler tend to be ridiculously less strict about things than Ruby/Javascript/PHP
You want to use that object as one of the things you are going to use in a floating point division operation and create a string based upon the results? Assembler says, not even close to any kind of issue. Where even Ruby would look at you and go, âuh⊠what⊠the fuck⊠are you⊠seriously man⊠the drugs arenât working for you man⊠they are working against you.â