• Lucid Dreaming - Dream Views




    Results 1 to 11 of 11
    Like Tree3Likes
    • 1 Post By Whatsnext
    • 1 Post By Whatsnext
    • 1 Post By Whatsnext

    Thread: Ask me about programming / computer science / iOS development

    1. #1
      Familiar Phantom Achievements:
      Created Dream Journal 1000 Hall Points 3 years registered
      Whatsnext's Avatar
      Join Date
      Nov 2013
      LD Count
      59
      Gender
      Location
      Celephaïs
      Posts
      268
      Likes
      262
      DJ Entries
      4

      Ask me about programming / computer science / iOS development

      Welp. It's what I do and I know plenty of people have interest in it. Currently I work as an iOS app developer.

      While we're at it ask me about this stuff too:

      Tarot
      Language learning
      Being a loner
      Space
      Paleo diet
      Sci-Fi / Fantasy book recommendations
      MrPriority likes this.

    2. #2
      Member Eddydpyl's Avatar
      Join Date
      Aug 2013
      LD Count
      100 +/-
      Gender
      Location
      Spain
      Posts
      70
      Likes
      40
      Oh, cool. I have a few questions:
      - Is it a good idea to learn Python as my first language?
      - I know is a pretty easy language to start with but will it enable me to code at the same level as, for example, C++?
      - How many hours could it take for me to be able to program, say, a simple mobile game?
      - Any shortcuts for a faster learning? What path would you recommend me?
      - How easy is it to be a freelancer programmer (meaning create something and sell it on your own)? What could be some of the problems one might find doing this?

    3. #3
      Familiar Phantom Achievements:
      Created Dream Journal 1000 Hall Points 3 years registered
      Whatsnext's Avatar
      Join Date
      Nov 2013
      LD Count
      59
      Gender
      Location
      Celephaïs
      Posts
      268
      Likes
      262
      DJ Entries
      4
      Quote Originally Posted by Eddydpyl View Post
      Oh, cool. I have a few questions:
      - Is it a good idea to learn Python as my first language?
      - I know is a pretty easy language to start with but will it enable me to code at the same level as, for example, C++?
      - How many hours could it take for me to be able to program, say, a simple mobile game?
      - Any shortcuts for a faster learning? What path would you recommend me?
      - How easy is it to be a freelancer programmer (meaning create something and sell it on your own)? What could be some of the problems one might find doing this?
      1. I think Python is a great language to start with because it's relatively easy and intuitive, enforces good coding style, and has some great learning resources. (When people want to learn programming I first send them here)

      2. It depends on what you're trying to do. There are tasks that Python is better suited for and there are tasks that, for example, C or C++ are better suited for. If you're planning to do web development, Python can be very helpful there but C and C++ won't get you much. If you're planning to develop for small embedded microcontrollers or such, then you will probably need to know C. C and C++ are closer to the bare metal of the computer so you will learn more about how computers work by learning them. It is especially valuable to get some experience with having to manage memory yourself (give me this much memory / I'm done with this memory, take it back) like you have to in C and C++. In Python, memory is taken care of for you by a garbage collector.

      3. This is hard to say but I'll do my best. Let's say you want to implement pong. The Code Academy Python course apparently takes 13 hours, and maybe you spend 7 more messing around on your own. Now, on iOS, you have to learn the Swift language (maybe 10 hours to get as good at it as you are with Python). Now you would start writing the game as an iOS app and learning as you go about: the CoreAnimation library (5 hours), some fundamentals about iOS apps (5 hours). Actually getting the game running reasonably well and debugging it might take another 15 hours. So I'd say you can go from 0 to pong on iOS in about 55 hours.

      I'm not quite sure what they do for animation on Android. I know they have OpenGL, they do on iOS too. OpenGL is not necessary for making pong but for more complex games you would need to use it. It is a lot harder to learn (and powerful) than CoreAnimation.

      4. I'm afraid I don't know of any real shortcuts. You just have to keep practicing and trying new things until you get to where you want to be. Making a game is pretty ambitious for a beginner programmer, but I wonder if you would be interested in programming games that already exist. Lots of games have scripting engines. For example you can write scripts for SecondLife in Linden Scripting Language (you can even sell them if they're useful) or scripts for Garry's mod in Lua. This is simpler than writing your own game, but is still quite fun and rewarding. No matter what you decide to do, I think Python is a fine choice for a first programming language because of the great resources available to beginners. Programming skills transfer pretty easily from one language to another, so even if you decide you want to write SecondLife scripts in LSL, I would still recommend starting with Python to learn programming fundamentals because of how many great beginner resources there are in Python. Plus, the more programming languages you know, the easier it is to learn more.

      There are a lot of programming "challenge" websites around that are pretty fun and are a good way to practice the basics and get a brain workout. Here's one: https://projecteuler.net/

      5. I've never brought anything to market independently but I'll try my best to answer this too. I think the hardest thing for the kind of freelance programmer you're talking about is marketing and actually making money, especially on mobile platforms. There are an insane number of apps available and it's easy for one to get lost in the tide. Piracy is a huge problem on Android, and Android users don't tend to buy many apps, so it's very difficult to make money there. iOS is bit better, but you will still need to compete with a lot of high quality apps. Also, apps tend to be pretty cheap, and Apple takes a 30% cut of all app store sales. Nonetheless, there are plenty of people who have become overnight millionaires selling mobile apps.

      On desktop operating systems, it is very rare for a single programmer to develop a product and make money selling it these days. At the risk of speaking too generally: if one person can do it, someone already has, and they're giving it away for free.

      Others problems are:
      graphics (unless you can do them yourself you'll need to hire someone and you won't get exactly what you want)
      user experience testing (as the developer, you are unavoidably biased, and cannot see things from the point of view of an uninitiated user)
      bug testing (same as above. You can test and find some bugs yourself, but others will only be found by other users using your software in ways you never would have expected)
      Last edited by Whatsnext; 02-03-2015 at 08:18 PM.
      Eddydpyl likes this.

    4. #4
      Member Eddydpyl's Avatar
      Join Date
      Aug 2013
      LD Count
      100 +/-
      Gender
      Location
      Spain
      Posts
      70
      Likes
      40
      1. Great! I've already started learning the language and wouldn't like having to change to another one.
      2. I'm also into web design, so again it seems like I made the right choice!
      3. I can't really code for IOS as I don't own an Apple computer (is it actually needed?), other than that it's good to know I'll actually get to create something in the month I expect to dedicate to learning this skill. Will look into OpenGL.
      4. Programming a game was just an example, it's something I'd like to be able to do but don't really expect to at the time being. I had no knowledge of Project Euler, will definitely give it a shot when I'm capable of more than print()ing...
      5. I've read somewhere that the best revenues from adverts are in Android, is this true?

      Also, lets say I am part of a group of four people where no one yet knows nothing but whose members intent to work together on a project. How do you think we should distribute the learning so as to be productive as soon as possible? I mean, what other skills are needed in the process of creating an app other than pure programming?

      Really appreciate your help!

    5. #5
      Familiar Phantom Achievements:
      Created Dream Journal 1000 Hall Points 3 years registered
      Whatsnext's Avatar
      Join Date
      Nov 2013
      LD Count
      59
      Gender
      Location
      Celephaïs
      Posts
      268
      Likes
      262
      DJ Entries
      4
      Quote Originally Posted by Eddydpyl View Post
      1. Great! I've already started learning the language and wouldn't like having to change to another one.
      2. I'm also into web design, so again it seems like I made the right choice!
      Python is useful for one aspect of building a web-site: the server-side scripting (the code that decides what content to send to the user). Generally it's used with a Python web framework like Django. That has its own learning curve, too. Web "design" is mostly done with HTML and CSS. Then there is client-side scripting which is 99% Javascript. Websites tend to be made with 4, 5, or more languages. Hit ctrl + U right now and you will see HTML, CSS, and Javascript.

      3. I can't really code for IOS as I don't own an Apple computer (is it actually needed?), other than that it's good to know I'll actually get to create something in the month I expect to dedicate to learning this skill. Will look into OpenGL.
      Yes you do need a Mac computer to develop for iOS (or you can use Hackintosh, but I didn't tell you that)

      4. Programming a game was just an example, it's something I'd like to be able to do but don't really expect to at the time being. I had no knowledge of Project Euler, will definitely give it a shot when I'm capable of more than print()ing...
      5. I've read somewhere that the best revenues from adverts are in Android, is this true?
      It probably is true, but you have to get quite a lot of users to earn any respectable sum.

      Also, lets say I am part of a group of four people where no one yet knows nothing but whose members intent to work together on a project. How do you think we should distribute the learning so as to be productive as soon as possible? I mean, what other skills are needed in the process of creating an app other than pure programming?
      It depends on the project. If you're making a website you would need someone who can do HTML and CSS, someone who can do Javascript, someone who can do the server-side scripting (in Python, Ruby, PHP, or almost any other language), and someone who can do graphics.

      You guys would also need to learn how to use a Version Control System like git. You don't have to have to but you would benefit greatly from it. All development teams that know what they're doing use version control. Any team project that doesn't use it will quickly turn into a mess. Most solo projects that don't use it turn into messes too.

      You would also need a bug tracker to keep track of bugs. If you use github, that lets you make both a git depository (for version control) and a bug tracker.
      Eddydpyl likes this.

    6. #6
      Member Achievements:
      Created Dream Journal 1000 Hall Points Veteran First Class
      Xvaiuer's Avatar
      Join Date
      Apr 2013
      LD Count
      1
      Gender
      Posts
      152
      Likes
      85
      DJ Entries
      35
      #include <iostream>

      using namespace std;

      int main(){
      cout << "Hello!!!";
      return 0;
      }

    7. #7
      Familiar Phantom Achievements:
      Created Dream Journal 1000 Hall Points 3 years registered
      Whatsnext's Avatar
      Join Date
      Nov 2013
      LD Count
      59
      Gender
      Location
      Celephaïs
      Posts
      268
      Likes
      262
      DJ Entries
      4
      Quote Originally Posted by Xvaiuer View Post
      #include <iostream>

      using namespace std;

      int main(){
      cout << "Hello!!!";
      return 0;
      }
      <?php echo "o hai"; ?>

    8. #8
      Member Eddydpyl's Avatar
      Join Date
      Aug 2013
      LD Count
      100 +/-
      Gender
      Location
      Spain
      Posts
      70
      Likes
      40
      Quote Originally Posted by Whatsnext View Post
      Python is useful for one aspect of building a web-site: the server-side scripting (the code that decides what content to send to the user). Generally it's used with a Python web framework like Django. That has its own learning curve, too. Web "design" is mostly done with HTML and CSS. Then there is client-side scripting which is 99% Javascript. Websites tend to be made with 4, 5, or more languages. Hit ctrl + U right now and you will see HTML, CSS, and Javascript.



      Yes you do need a Mac computer to develop for iOS (or you can use Hackintosh, but I didn't tell you that)



      It probably is true, but you have to get quite a lot of users to earn any respectable sum.



      It depends on the project. If you're making a website you would need someone who can do HTML and CSS, someone who can do Javascript, someone who can do the server-side scripting (in Python, Ruby, PHP, or almost any other language), and someone who can do graphics.

      You guys would also need to learn how to use a Version Control System like git. You don't have to have to but you would benefit greatly from it. All development teams that know what they're doing use version control. Any team project that doesn't use it will quickly turn into a mess. Most solo projects that don't use it turn into messes too.

      You would also need a bug tracker to keep track of bugs. If you use github, that lets you make both a git depository (for version control) and a bug tracker.
      Thank you for everything, I'm bookmarking this thread

    9. #9
      Member Achievements:
      1 year registered 1000 Hall Points Veteran Second Class
      JustASimpleGuy's Avatar
      Join Date
      Jan 2015
      LD Count
      2
      Posts
      223
      Likes
      187
      I would but I'm a dinosaur mainframe type. :-)

      Who are your favorite Sci-Fi authors? Aside from the obvious here are two of mine:

      Sci-Fi - Vernor Vinge
      Fantasy - Stephen R. Donaldson

      Fred Saberhagen has some neat stuff in both genres.

    10. #10
      Member Achievements:
      Made lots of Friends on DV 1000 Hall Points Veteran First Class
      MrPriority's Avatar
      Join Date
      Jun 2014
      LD Count
      43
      Gender
      Location
      Netherlands
      Posts
      294
      Likes
      392
      Hey, awesome thread!

      Here's my question:
      I just started studying ICT and just last week I chose Software Engineneering (There were 4 different choices within ICT). I mainly use C# (Windows Visual Studio) and I have made a couple of fairly simple games already. I really enjoy making those. Now as for the question. Do you think it is possible to find a job as a gaming programmer. Without having any visual skills like animation or graphics in general. A job only based around the logic of the game. And if yes, how rare do you think these are?

      I'm going to have to choose a specialty within Software Engineering in the next half year, though I might switch to computer science, which is a slightly more difficult study. So I'm looking around and finding my options right now. We do have a gaming section in school. Then again Security also seems interesting and maybe better since I am really bad with anything visual xD
      Lucid Dream Goal:
      A perfect week!

      One week with at least 1 Lucid Dream in every night.

    11. #11
      Familiar Phantom Achievements:
      Created Dream Journal 1000 Hall Points 3 years registered
      Whatsnext's Avatar
      Join Date
      Nov 2013
      LD Count
      59
      Gender
      Location
      Celephaïs
      Posts
      268
      Likes
      262
      DJ Entries
      4
      Quote Originally Posted by MrPriority View Post
      Hey, awesome thread!

      Here's my question:
      I just started studying ICT and just last week I chose Software Engineneering (There were 4 different choices within ICT). I mainly use C# (Windows Visual Studio) and I have made a couple of fairly simple games already. I really enjoy making those. Now as for the question. Do you think it is possible to find a job as a gaming programmer. Without having any visual skills like animation or graphics in general. A job only based around the logic of the game. And if yes, how rare do you think these are?
      Quote Originally Posted by MrPriority View Post
      Hey, awesome thread!

      Here's my question:
      I just started studying ICT and just last week I chose Software Engineneering (There were 4 different choices within ICT). I mainly use C# (Windows Visual Studio) and I have made a couple of fairly simple games already. I really enjoy making those. Now as for the question. Do you think it is possible to find a job as a gaming programmer. Without having any visual skills like animation or graphics in general. A job only based around the logic of the game. And if yes, how rare do you think these are?
      Not rare at all. (I've never worked on a major video game by the way so take all this with a grain of salt). Programming and visual design are separate roles. This is true in video game development and the development of any other major software. If you watch the credits for a video game, you will see the names grouped by roles. This will give you an idea of the separation between roles. For example you might see a bunch of names under "programmers" and then a bunch of different names under "animators" and/or "artists" and/or "visual designers".

      However, it is the job of the programmers (but maybe not all of them) to define how things in the 3D world interact. For example, if a character looks ugly, then that's the artist's fault. But if a character is walking down a hall and glitches out and falls through the floor, that's a programmer's fault.

      The programmer is responsible for what goes where in the world, but not what the world looks like.

    Similar Threads

    1. Replies: 17
      Last Post: 07-14-2011, 07:39 PM
    2. Replies: 2
      Last Post: 06-14-2011, 09:40 PM
    3. Tell me about theoretical computer science
      By Xei in forum Ask/Tell Me About
      Replies: 6
      Last Post: 07-31-2010, 08:03 AM
    4. Learning about computer science/programming
      By ThePhobiaViewed in forum Tech Talk
      Replies: 27
      Last Post: 11-21-2008, 12:28 AM

    Bookmarks

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •