apps...programming....computers...how?

<p>Hey guys :) I've become really intrigued in computers this year (sophomore yr.) I first want to focus on making a phone app..then i want to maybe trudge deeper into this (maybe this summer?) but idk were to start though :'c Please keep in mind i'm a novice in this field!</p>

<p>Take a programming class, preferably in Python or Java, to understand the basics. Then, you have to pay like $100 and get Apple’s Developers SDK, from which you can make iOS apps. IDK about Android though…</p>

<p>Hope this helps!</p>

<p>[BTW I have very little experience in this field, so I might not be the best source]</p>

<p>If you want to start off programming, then a simple language to learn is Python.
Or on a Ti-84 Plus Calculator. Those are pretty easy too.</p>

<p>I’m currently taking an online computer science course about programming in Python. Although it doesn’t require previous programming experience, I found it rigorous even though I had some programming experience. In fact, there are plenty of YouTube tutorials on computer programming. Also, you might want to look into the AP Computer Science test for next year.</p>

<p>Can someone take AP Comp sci w/o any prior programming knowledge?</p>

<p>I believe most schools have a class that’s prerequisite such as Introduction to Computer Programming.</p>

<p>For my school, AP CS A is the only real "programming"class besides engineering (which doesn’t really count). I’m not sure about the “5” rate though.</p>

<p>Thanks guys! but which computer language should i take up as a beginner? like a language that i’ll get the most out of and will be able to use it frequently?</p>

<p>I started with Java, but I would go with Pyhton… Try Khan Academy or Codeacademy.org</p>

<p>I actually bought a C++ and Perl book which were pretty cool. Yet, I recommend starting with Java.</p>

<p>if i wanted to learn Java and Python, where and how would i learn it best?
@Meander, you bought a book? should i not learn it virtually on computer?</p>

<p>Python and BASIC are the easiest, but I think AP CS A only uses Java.</p>

<p>

The age old question. :-)</p>

<p>It’s unhelpful just to throw a name out there, so I’ll give a bit of my perspective on the languages one might want to start with:</p>

<p>A beginning programmer will write more short programs (“scripts” is generally appropriate to describe them) that get simple things done than big projects with multiple developers and complex goals and design requirements.</p>

<p>A good pedagogy (but not the only good one) is to transition from short scripts to bigger and bigger programs while becoming more comfortable with a paradigm. I think the two most important paradigms for any programmer to learn are object-oriented (OOP) and functional (FP).</p>

<p>Almost all programming languages people will recommend to you are multipurpose languages, but clearly imperative and their main strength is OOP. C++ and Java fit that description. C++ is derived from C (imperative, no OOP support built in) and its main difference is OOP support; other differences serve to make auxiliary improvements to its OOP support. I’d say Java is even more strongly object-oriented than C++, as it forces OOP onto the programmer more strongly and it’s way better suited for big, structured projects than for scripts. Python, on the other hand, supports OOP excellently but is designed to give the programmer more say in the matter; I’d say it’s the best language at letting you choose how you want to program. Conversely, it makes it easier to shoot yourself in the foot if you don’t understand OOP very well.</p>

<p>Functional programming is declarative, rather than imperative like OOP, which makes it a much different way of thinking. (Mathematicians love it). I think FP is underrated; it’s actually an easier way of approaching many problems that are usually instinctively approached with OOP because people are comfortable with OOP. It makes it easier to verify the logic of code just by looking at it without test-running it, enables more logical division of many types of strategies, and usually is simply more elegant than OOP. FP is like giving the computer a machine-readable version of a problem you’ve already described on paper; declarative programming is more like telling the computer what steps to take because you’ve figured out that those steps lead to the solution you want. Scheme and Haskell are probably the most attractive options; Scheme is a dialect of Lisp, an old favorite of programmers everywhere, but I personally find Haskell to be the most readable.</p>

<p>The thing is: OOP is imperative and FP is declarative. Imperative programming is more flexible in my experience than declarative because you control the steps taken, and imperative is usually better-suited for scripts. That’s an enormous generalization, though, and I began with imperative programming so I obviously find it more natural.</p>

<p>I recommend starting with Python because of its ease, flexibility, and overall good design. It lets you ease into OOP and it’s powerful even with very basic OOP. (C++ templates, anyone?) I also recommend learning C alongside it and frequently trying to do the same thing in C that you’ve done in Python. Operating systems are written in C, the Python interpreter is written in C, many Python libraries are merely wrappers around C libraries, and C is extremely useful for interacting with hardware. Using C for complex tasks also forces you to learn about important things like memory management and the essence of OOP (since you can use C in a way that looks very object-oriented but you have to reinvent the wheel, in a sense).</p>

<p>Meanwhile, never forget about functional programming. Set aside time frequently to learn about lambda calculus and your choice of a FP language. It will improve your understanding of computers and logic even if you only do your programming in imperative languages.</p>

<p>

Learning a language isn’t suddenly going to make you know how to program. If you want to learn how to program, you may want to study some CS books for maybe a year or two.</p>

<p>There’s also an almost-catch-22: it’s hard to understand the best use of a programming language without understanding the computer science concepts it implements, but it’s hard to understand computer science concepts without understanding how they can be implemented.</p>

<p>The answer is a ton of trial-and-error learning. You’ll inevitably write some god-awful code during the learning process. I cringe at what I wrote as little as two years ago. The only way to move forward is to immerse yourself in programming languages and computer science simultaneously.</p>

<p>@Halogenreally very well thought out post? I’ve always been terrible, but OOP has always came more naturally.</p>

<p>I personally started with HTML, CSS, and eased into JavaScrpt and PHP.
Not that I would personally recommend this.</p>

<p>There’s actually a creative programming course that’ll begin in June on coursera. They recommend some experience in python, though.</p>

<p>

That’s how I started, too. :smiley: First HTML and CSS to design webpages, then enough JavaScript to write the client part of a guestbook, then PHP when I figured out that I actually needed to write server code else or the only comments guests would see were their own (lol), then Python a few years later when I started using PHP less for internet-facing development and more for personal tools and decided a good multipurpose language would be better than PHP.</p>

<p>To who ask the question: The book had a program with it. It was just step by step stuff.</p>

<p>Iphone apps are in something called objective C. The same thing happened to me, so i just bought a book and am following it. tbh, unless you have true dedication, it is really hard to get through, but i am told it pays off :)</p>