Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Is it possible to be able to programming in 1 month?

Discussion in 'General Discussion' started by GTHell, Jan 7, 2016.

  1. GTHell

    GTHell

    Joined:
    Jan 5, 2016
    Posts:
    256
    Hi, everyone

    I pick a C# book that has a good review to help me begin with C# programming.

    I have no programming experience but I read different C++ book and paused it.
    This book give me a good example and it's easy to read, also it has 680 page.

    I'm already in book for 100 page and 2 day already since I got the book!!!
    However as a you can tell that I'll finish this book in around 15 day that's probably around 24th.

    In this short time of learning, do you think I can code? I didn't rush through the book I take it slowly but It's easy to read and enjoyable so I find myself reading this book around 3-4 hour a day.(The font is small so 1 page is has a lot of concept).

    I finish Class and OOP and I understand them now and moving on to Function section.

    I ask this question because in my C++ class at my shcool, It's been 3 month already but we still on Loop and If function because some of my classmate is a slow learner.

    Is it possible? sure this book is thick but hey....I'm a fast reader and a good learner.

    Sorry for my English as it's not my first language and thank before hand to anyone who help me answer the question?
     
  2. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    Coding isn't really that hard man, I learned how to get basic but running things when I was 10 years old by looking at examples not knowing what anything did. So honestly, depending how you learn, you can check youtube out and may help you A LOT! Depends on the way you like to learn. But yes it's very doable.
     
  3. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    I guess it depends on what you mean by "able to code"... writing variables, writing loops, functions, classes, interfaces, etc. are all easy tasks. That is to say you can learn what a function does and what a variable does and what an if condition does, and write in some small piece of code that properly makes use of it and say that you understand it.

    If that's what you mean by being able to code, then absolutely.

    I do think once you master those things, you'll discover what makes "programming" truly challenging. It's only just beginning when you think you can code. In other words, if you want to be at professional level, prepare to put way more time in than a single month.
     
    Last edited: Jan 7, 2016
    landon912 and Kiwasi like this.
  4. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,141
    It's definitely possible to learn the basics of programming within the first month but keep in mind that a large part of being proficient at any skill is experience and you can't learn this from a book. You need to practice and continually push yourself.

    Teach Yourself Programming in Ten Years
     
    Batman_831, landon912 and neginfinity like this.
  5. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Code (CSharp):
    1. 10 Print "I can Program Now"
    2. 20 GOTO 10
    You can program as soon as you start learning, depending on your maths aptitude and how hard you apply yourself you can learn to make some cool games with Unity in a few days.

    And have great fun along the way.
     
    Rioneer, dogzerx2 and MD_Reptile like this.
  6. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,663
    Fixed. Lol.
     
    larku, Batman_831, dogzerx2 and 4 others like this.
  7. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    No. You'll be able to write simplest programs but will be nowhere close someone who's spent years at it.

    Finishing the book will not teach you how to program. Books are important, especially for C++, but for them to be useful you need to do EXERCISES provided in the book.
    You learn by practicing. Knowledge from the book will be useless until you start applying it.
     
    angrypenguin, landon912 and Dantus like this.
  8. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    Reading only books will not teach you programming.
     
    neginfinity likes this.
  9. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    Q-BASIC Automatically converts to Capital :p
     
    Kiwasi and MD_Reptile like this.
  10. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    I have never read a book on coding, well that's a lie, my uncle gave me a Java for dummies book once, and you know what? I tried to read like 4 pages an never touched it again. I learn by experimenting, not reading.

    The best way I learned was reading open source programs and seeing how they worked.
    If I didn't know what something was I'd type in exactly what "google.com > What is a C# Float". Long term short - it's a number with a decimal point, Idc what the insides of it are, only what the outcome is. Now some cases it's good to know the internals of things.
     
    Batman_831 and Deleted User like this.
  11. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    I had to increase the size of the font a little to be sure it is not missed. You don't learn how to code by reading, you are only learning it when you practice.

    Edit: I have read several book about how to paint. I also like it to watch Bob Ross from time to time. Yet, I can't paint! I am only a theoretical painter, but I am really good at it!
     
    GibTreaty and angrypenguin like this.
  12. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    It takes a year of somewhat intensive work and repetition.
     
  13. Mwsc

    Mwsc

    Joined:
    Aug 26, 2012
    Posts:
    189
    To go around saying "I know how to code" is like saying you can swim, or run, or play guitar. Really anybody with average physical and mental abilities can learn how to do these things at a basic level after a short course of lessons and practice. Now, if you want to earn a living due to your skill in any of these things, you need far more than 1 month of experience.
     
    landon912, Ryiah and Kiwasi like this.
  14. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Totally possible to learn the basics of coding in a month. After all, there are only really three principles to learn, variables, branching and loops.

    You should be able to grasp those on a week and have a simple space invaders or flappy bird or pong clone running.

    Learning to program to the point that someone will pay you to do it will take longer, probably at least a couple of years. There are a lot of higher level concepts to learn. Plus there is a lot of meta stuff around problem solving and project management and the like.

    Getting to the point where you can make games on your own that people will pay you for will take even longer.
     
  15. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    You know, if you throw someone into river, there's chance that they'll learn to swim. Doesn't work with guitar, for some reason. Or with programming.
     
  16. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    I dunno. I learned programming on the job building an incident reporting database. We desperately needed one and it was my responsibility to make sure we had one. Now 10-20% of my day job is programming.

    I learned guitar in about a week Because the girl I was dating was a guitar player and that's what she wanted to do when we were hanging out. I since married her and haven't made much further progress of my music skills.

    Point is "getting thrown in the deep end" is a legitimate way to learn technical skills. Sure it comes at the cost of making more mistakes, and sometimes costly ones. But it's often a faster learning path then more formal education scenarios.
     
  17. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    Or drown!
     
  18. Rasly233

    Rasly233

    Joined:
    Feb 19, 2015
    Posts:
    264
    "680 pages" marketing force is strong xD
    I think you can explain programming in one page if you realy want, it is very easy.
     
    zombiegorilla and Ryiah like this.
  19. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Personally, I don't think programming is some kind of art form or sophisticated task that requires years of experience and study. Game dev is, but programming isn't.

    From the article: "One possible point is that you have to learn a tiny bit of C++ (or more likely, something like JavaScript or Processing) because you need to interface with an existing tool to accomplish a specific task. But then you're not learning how to program; you're learning to accomplish that task."

    I disagree with Norvig because programming is meant to accomplish a specific task - or rather, a variety of tasks in a maintainable way. Working with an experienced programmer does help a lot but you can learn all about maintainability within a day by analyzing others' code and seeing how they decouple or make extensible logic.

    Of course, a big part of high level programming (i.e. C#) is communicating with people - not just the compiler, and there is an art in communication. Learning the details of that requires experience with a team so maybe that's what the author means when he waives accomplishing a specific task. The most effective programmers are the ones who work together because 10 synergized people are going to be more productive than 1.

    But in the way OP probably means "be able to", hell yes it's possible. You can probably code a flappy bird clone within your first week. In fact, Unity's tutorials like Roll-a-Ball are designed so that you can finish it within a day - code and all. I never picked up a programming book before, but Unity's scripting tutorials really helped me. It honestly just takes a couple of hours, focus, internet, and popcorn to be able to program - maybe another month to be fluent at it.
     
    Batman_831 and Kiwasi like this.
  20. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    If you stick around for a few months, you'll just start to begin to realize how far you still have left.

    To be fully competent at any profession is going to take a long time and a lot of work.

    That's not to say that you can't be somewhere cool in a month, but you certainly won't be rivaling the skill or talent of any of the old geezers that lurk around here. It takes a while to become as cranky as the hippo. :p
     
    Kiwasi likes this.
  21. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,141
    There are visible differences between code written by a novice and code written by an experienced programmer. Simply reading over the few surviving snippets of code I have from my early years is proof enough for me that experience makes a big difference. I want to point out that I don't entirely believe it takes ten years to become proficient but you won't be a skilled programmer after only one month. It takes practice and continually challenging yourself.

    I agree that he doesn't seem to be asking about becoming proficient in programming, but at the same time others already answered that aspect. I was focusing on the aspects that go beyond simply sitting down with a book and reading it. I've had my own periods of reading programming books and the knowledge you gain from it only goes so far.
     
  22. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,516
    It's possible to learn to "write code" in a month, sure. But, there's a huge spectrum between being able to write code and being able to build non-trivial software.

    Writing code is step one. There are many, many steps after that. Designing the code in advance. Designing software that is useful/fun/effective for its users. Maintaining code. Domain knowledge of the area(s) you're working in. Knowledge of the platforms you are targeting. Knowledge of the many and varied tools you'll be using along the way. Knowledge of relevant business/development processes. (I could go on and on. That's ignoring all of the support skills that go around your ability to build software, like scope and project management and so on.)

    I've been at this for nearly two decades, and I'm still actively working on all of those things.
     
    Kiwasi, zombiegorilla and Ryiah like this.
  23. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    Have you ever programmed? How about working with large codebases? How about redesigning fundamental part of those codebases without them breaking?

    You see, tasks you'd encounter while working with something like Unity mostly fall into "toy problem" category. That might've given you impression that programming is easy.

    It really IS a difficult skills that takes years of practice. Kinda like playing piano, studying art, etc. Lots of people can doodle or play few chords, but if you want to go beyond that, it'll take years.
     
    Ostwind, Kiwasi and Ryiah like this.
  24. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,066
    Bit of a pointless question really. You can learn to do anything in 5 minutes, to some degree. But what you really need to ask is whether or not you can learn x in y amount of time, to achieve z goal. And even then, the answer is always going to be "Maybe" :)
     
  25. gameDevi

    gameDevi

    Joined:
    Oct 14, 2015
    Posts:
    155
    without giving you an IQ test I have no idea o_O
     
  26. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Continued: A strong foundation in math is much more useful than a strong foundation in programming because to a great extent, programming IS accomplishing specific tasks. You can memorize and regurgitate how to accomplish those tasks like toy Unity problems or you can understand how to figure out how to solve them and push the boundaries of technology.

    Sure, there are things like keeping things decoupled an extensible, as well as readable but I don't see why that can't be learned by just being told explicitly. Besides communication (I've already granted that), what subtleties do you have in mind that can't be learned from a book in a short time?

    Okay, just thought of one xD
    Computer science lol... it can be learned from a book (actually is for the most part) but takes a long time because of the amount of material. It's not something you learn with 10 years of programming so let's just throw it under maths to make it easy.
     
    Last edited: Jan 8, 2016
  27. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,516
    How about these?
     
    Ryiah and Kiwasi like this.
  28. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,066
    This isn't programming. It's copying and pasting, or - at it's most sophisticated - following a tutorial.

    Being "able to program" means being presented with a problem, and being capable of creating a solution. Not by copying and pasting code and tweaking it, but by starting with a blank page and, you know, programming.
     
  29. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    That's game/software dev. Mentioned it in my first post.

    That's what I'm talking about too! Thanks for confirming we're on the same page.
     
  30. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,516
    You also mentioned that you could learn how to make code maintainable in a day by looking at others' code.
     
  31. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    In a month, but yeah. It's learnable in a short period of time.

    Actually, I didn't say that explicitly but I stand by my point that someone can become a productive, quality programmer within a month.
     
  32. Batman_831

    Batman_831

    Joined:
    Oct 17, 2014
    Posts:
    106
    Of course. A week is enough too to learn to code. Mastery is another thing though.
     
  33. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,516
    Hmm...
    In any case, it's all a giant grey area. Yes, people can easily learn enough to write small programs from scratch in a month. The thing with programming and computer science in general is that it's such a large field (like many others) that nobody has full coverage and there's always something to learn or update.

    @SteveJ really did nail it earlier:
    You can get some people writing Hello World from scratch in 5 minutes. That's not too useful, though. It's almost certainly not what someone rocking up to a game dev forum really wants to know. And is a month enough to learn enough to write a game? A simple one where you stick to "toy problems"? Probably. Anything more complex than that might be possible, but there's also a lot of other stuff you need to pick up on top of how to write code, so I wouldn't bank on it.
     
    Ryiah and Kiwasi like this.
  34. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    :eek:. Okay I stand by that too xD. Code is just a bunch of commands for the computer. There are specific rules for how to organize the computer but it's probably not possible to learn it all by looking at others' code. I don't see why it can't be done within a day though, with a list of conventions/standards for maintainability.
     
  35. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,516
    Try it.

    You could definitely make significant steps in a day, but I expect that what you learn from doing so would open your eyes to just how much more you don't know. Search for the "stages of competence" and have a read, it's enlightening.
     
    Ryiah likes this.
  36. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,516
    This is what people are getting at. "Writing code" is not the same as "programming" any more than "swinging a hammer" is the same as "building furniture". Yes, in and of itself code can be relatively easy once you get past its initially cryptic nature. But using it to solve problems is a whole other level that involves many additional skills.
     
    landon912, zombiegorilla and jpthek9 like this.
  37. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Ah, I see the distinction. I completely agree. Programming requires many skills besides coding that need years to develop.
     
  38. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    lol this reminds me I once spent 5 hours figuring out how to declare a variable in action script 3 when I was learning it as a first language :p
     
  39. GTHell

    GTHell

    Joined:
    Jan 5, 2016
    Posts:
    256
    So, I will translate all your answer to something like "No, You can't learn programming from a book. You need to attend a college(Maybe Harvard?) that has 2h/week and take 4 year to be a good programmer. "

    You misunderstand the OP and by 1 month I didn't mean I spend 1 hour a day. I spend almost 6-7 hour last day just to read and redesign the example code. I've been in C++ class for 3 month and I see no improvement beside learning if function again and again.

    Also, don't forget that learning book is a not a reference book.
    Only jpthek9 give me a decent answer.

    The rest give me the answer that involve ++year to accomplish and even tell me that it's require experience.
    That's because you never experience to master something in a short period of time.

    I shred my guitar in 9 month while other can only read music and copy chord progression from other and call themselves professional. They're all amateur.

    And to @gameDevi, if my IQ can help you to answer my question then just know that my IQ is above average so now you got the clue.
     
  40. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    No, that's not what I'm talking about.

    You have incorrect impression of programming. There's nothing to discuss, until you get more experience.
     
  41. Gurigraphics

    Gurigraphics

    Joined:
    Jan 7, 2016
    Posts:
    19
    Programming is like a toolbox. More and better tools, more and better can be done, in less time.

    Someone has programmed the Cards of your PC. So you can make a game "from scratch" in a short time. Otherwise, you would have to learn to solve hundreds of problems before creating a game.

    An Game Engine enables the same shortcut to provide the code libraries.

    Making games is available for anyone because there are many things you no longer need to know. As the low level language.

    But to solve complex problems with many data and libraries, many years of experience is needed.

    Because in a month you can read a book, but not a library of books.

    That's the difference between a "framework creator" able to program the Cards and develop Engines, and a "framework operator" able to use this. But, both are "programmers" because create "systems" simple or complex.

    As you can see our learning is a historic construction:

    "If I have seen further it is by standing on the shoulders of giants". (Isaac Newton)
     
    dogzerx2 and Eric-Darkomen like this.
  42. Eric-Darkomen

    Eric-Darkomen

    Joined:
    Jul 18, 2015
    Posts:
    99
    Programming is like math, easy to learn, just about impossible to master, doesn't always produce consistent results and its based on ideas and methods someone else came up with many years ago that you will need to learn how to use and build on in order to make a useful contribution. The more experience you have generally the better the results for various reasons.

    Ultimately I think you need to try it by jumping in and creating that 'hello world' to decide if you enjoy it or not because like any profession (as in professional, i.e. doctor, lawyer, etc) it's a life-long learning experience and it's evolving all the time...

    If you plan to develop a game it's best you also understand that being able to program reasonably well will bring 60% of the way...
     
    Gurigraphics likes this.
  43. Mwsc

    Mwsc

    Joined:
    Aug 26, 2012
    Posts:
    189
    Let's say you had full understanding of every feature of C# and every Unity API.
    Now let's say that in the course of developing your game, you need some exciting feature that isn't included with Unity or available on the asset store. I'm not an expert on the full list of features in Unity or what is out there on the asset store, so I can't give an example of such a feature that is certain to be valid. But let's assume, for the sake of discussion, that your game required a depth of field blurring effect (I pick this because I happen to have studied it a lot). It could be any of many features instead, maybe you need a sophisticated new shader, maybe you need some kind of physics simulation that isn't built in. But let's stick with DoF for an example.

    You search the Unity API and the asset store, and find nothing.
    You realize you have to code it from scratch.
    So you google "depth of field blurring", and find 10 trillion hits, each describing a different algorithm.
    Some of them are scary and difficult, involving words like "fast fourier transform", "dual Gaussian pyramids", 'summed area tables', or "repeated integration". Do you know what all of those words mean? Do you know the pros and cons of each, and would you be able to quickly pick the best one for your game? Would you be able to read a SIGGRAPH paper and translate it into Unity code? Would you be able to analyze the needs of your game, and then take the best features of 5 different algorithms and engineer something new that perfectly fits your game?

    None of that stuff is going to be in your "teach yourself C# in a month" book.
    You can have a PhD in depth of field rendering and still not be familiar to the last detail with every technique out there.

    And that was just for a blurring effect!
    What about the rest of your game?
    There is a reason why AAA games involve large teams of highly experienced people.

    Now, of course you don't have to be a total expert in every technology that your game uses.
    You can partially understand an algorithm, as long as you understand the important characteristics, and know it well enough to code it. I'd say that in 10 years of 8hour days of work, you could have enough experience that you can put together a solid game by yourself without having to learn a lot of new stuff along the way. But if a new technique comes out right as you are getting started, you wouldn't know it and you would STILL have to study more.
     
    landon912, Ryiah and Yash987654321 like this.
  44. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    Learning syntax is easy. Learning to use write logic is not. I learnt the syntax of CPP in 2-4 days.... But Managing Memory and using arrays is killing me.
     
  45. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,141
    If you don't need to worry too much about performance you could just use a vector.

    http://www.cplusplus.com/reference/vector/vector/
     
  46. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
    These forums need a way to downvote threads.
     
    Ostwind, Kiwasi, landon912 and 2 others like this.
  47. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    I see what you wanted to say, but why did you pick up toy problem for an example?

    Hunting for information is part of programmer's job, so even if you don't know anything to that you'd be expected to learn it in 2 days, implement int on 4th day, and forget about it completely one week later. The situation you listed is common everyday occurrence. You don't know something, you need to quickly learn it and then implement it.
     
  48. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    Great way to trick people into writing pages of text.
     
  49. Yash987654321

    Yash987654321

    Joined:
    Oct 22, 2014
    Posts:
    729
    There are always spammers that will just down vote without any reason.

    In know them. I even know smart pointers, hashmaps etc. But wanted to try it in the old way (I love arrays :p) and I am new to pointers as I never used them in C#
     
  50. Mwsc

    Mwsc

    Joined:
    Aug 26, 2012
    Posts:
    189
    The only sense in which it is a toy problem is that I am pretty sure you can find a decent canned solution somewhere. I picked it rather than something more novel simply because I am not currently working in game development and so I'm not sure what things are still purely in the Ivory Tower and which have migrated into the everyday game development world.

    What ever happened with the voxel octtree cone-tracing global illumination? Wasn't that demo done in Unity? Is there an asset you can buy that gives you this feature? I know there is source code, but is it plug-and-play, or would you have to rewrite it to work with your game? This might be a good example.

    Anyway, I agree that hunting for information, getting it implemented in less than a week, and moving on, is indeed standard practice for a working programmer. Actually, that was kind of half my point, I should have stated that explicitly. But the second half of my point is the part you left implicit: you must have the ABILITY to hunt for information, evaluate what you find, settle on something, learn it intimately, implement it, and have it work! All in a few days. If the only thing you know about game development is the syntax of C#, you won't know how images are represented in memory, what RGB means, the difference between post-process DoF vs. distributed ray tracing/accumulation buffer approaches, what Bokeh is all about, whether or not you really care about partial disocclusion, how an image pyramid works, and so on and so forth. If you have been developing games for 10 years, you probably would know a good fraction of that, and you would pick up enough to complete your task in a few days. But I find it unlikely that you could learn and understand all of that in 2 days if you have zero experience and no coursework on graphics or math or optics.
     
    Ryiah likes this.