needing to know math to develop iOS apps

App Developer

Hi.
I'm just wondering, if you want to be an app developer, do you need to be good at math? While I want to develop software and work for apple, I am required to take a ton of nath calculus classes for my computer science degree. I can do basic math and basic algebra. Ironically, I have no trouble figuring out programming concepts, and writing code... But I guess I'm feeling discouraged, like I'm not smart enough. I don't understand the need for calculus when developing apps, unless the app is math related or something.  

Forum: 

#1 CS courses

Hi Molly

There's no need to be discouraged about your course's calculus requirement. The truth is, computer science courses aren't a requirement to be a programmer, unless you happen to come up against a human resources department that thinks a programmer needs a whole lot of theoretical knowledge they'll never use in order to be a programmer. You will find that there are plenty of self-taught programmers out there, and good programmers are always learning.

I've never taken a CS course myself so I don't know exactly what they teach, but what I've heard suggests that calculus might be a requirement in order to give you a good base for understanding the more theoretical side of computer science.

Programming is the practical side of computer science, but programming really isn't a science. Programming is more like a craft. It requires both skill and creativity. The only way to improve as a craftsperson is through continuous learning and experience. A lot of effort is wasted on trying to make programming more scientific, but it never will be.

#2 Calculus

App Developer

CS courses can be a mixed bag of practical experience and theory. Some of the theory comes in handy, and sometimes it doesn't. In either case, colleges and universities must obtain accreditation from somewhere. In most cases, a CS degree is going to be in the engineering department. Since engineering is largely scientific, the accreditation agency will require all students taking an "engineering" degree to have a certain number of credits in college algebra or calculus.
This doesn't mean you have to use it to build apps. Of course, math does come in handy for certain things, but it is not required.
Writing programs requires a good combination of theory, experience, science, and creative spirit. Unfortunately, colleges and universities tend to forget about creative spirit. I know of people who have finished their B.S. degree and couldn't plan and creatively design an app. I guess it is left up to the design arts people. Either way, a good school will have a good balance in the degree.

#3 calculus

App Developer

Hello.
I am not going to be afraid to take calculus anymore. After all, just because I've never taken it, doesn't mean I won't be good at it. I love computers too much to think twice about getting this degree. I mean, I sure if I work very hard, I will succeed. I've been looking at the actual computer courses, and they sound absolutely amazing. I just can't wait to take computer architecture and programming logic and design with c++...

#4 Hi Molly. I'm currently

Hi Molly. I'm currently working as a software engineer, and I do have a computer science degree. If you're smart enough to code, you're smart enough to figure out calculus, provided you have the right tools, and someone who can explain it in a way that will make sense for you.

That being said, I haven't used all that much calculus in my work, but I have used a lot of statistics and probability math, and plenty of algebra, so it's probably more luck than anything.

As for the value of a CS degree, I have often questioned the value of mine, particularly when paying my student loan bill. Yes, it did make it easier to get that first job, and maybe the second one as well, but after that, no one seems to care, except as a formality. My experience is far more important. Perhaps if the job market goes south in this field, then that will change. But at this point, I remain unconvinced that it was worth it. All of the languages I use on a daily basis, or that I have used seriously in the past were self-taught. I knew a few programming languages when I got my first job, but it was my first real job that truly taught me how to program--to think like a programmer.

Anyway, that's my experience, and YMMV.

If you'd like to discuss this further, feel free to ping me on twitter @cannona, via email at cannona@fireantproductions.com, or simply reply to this message.

Good luck regardless.

#5 Well I think I will take all

App Developer

Well I think I will take all the general ed courses first. I wonder what public speaking will be like... Perhaps I can give a speech on why I love Apple products so much... I think the reason there's so much math because, depending on what you do, for example, if you were to design an algorithm, you'd need to know calculus.

#6 software engineering

App Developer

Hello. I am no expert, but programming comes very easy to me. I feel I am smart in that regard. For instance, I have figured out out programming concepts such as variables, strings, functions, etc. Once I understood the concepts, it came naturally to me, even a friend of mine told me that coding is very visual. I disagree with that. I am going to continue to work very hard to obtain my degree. I want to work as a software engineer on Apple's accessibility team and live in California (provided it does not fall into the ocean), and build apps on the side. I feel very much encouraged now.

#7 Coding is visual?

lol I have to say that I've never heard that one before. The programming done by professional programmers today is for the most part textual. Some aspects like GUI creation have become visual, but underlying the graphical tools is always some kind of text (whether human readable or binary).

The great thing about being a blind programmer is that if something doesn't work just the way you want it to, you have the power to make your own. It's a great ability to have as a blind person, and those who can't program will either admire you or question why you have to make your own custom application to do what an off-the-shelf, but not ideal, application can do for you.

#8 getting started

perhaps this should be another topic, but I was wondering how to get started learning on one's own.
I might take a couple of courses from cisco's academy for the visually impaired but wondered what those of you who are self-taught have done.

Liz

#9 Learn a programming language

The first logical step toward becoming a programmer is to learn a programming language. Python is a good language for beginners, but the indentation requirements make it more difficult for blind programmers without the help of screen reader or text editor support for telling you the indentation level. I get around the issue by using EdSharp (which doesn't seem to be under active development anymore) and by using the tab character for indentation instead of the recommended 4 spaces.

That being said, Apple only provides support for ObjectC and Swift with support for other languages being provided by third parties. So, you would probably be better off learning Swift if you want to develop software specifically on Apple's platforms.

I started out by reading the documentation for the language I wanted to learn. That approach doesn't work for everyone, but fortunately, you live in an era when there are a lot of tutorials available online for all the most popular languages.

For the record, the C language is the lingua franca of programming. Most, if not all, modern languages provide some way to access a C library through an interoperation interface. However, most don't choose to program in C because it is such a low-level language, but knowing how to read and understand C declarations properly will help you access libraries from which ever language you choose that you might not otherwise be able to access.

Apologies if I've managed to confuse you, but programming really is a huge area of study, and if you want to be a programmer, you need to be prepared to spend your life learning. I wish I could point somewhere and say, "start here," but that is sadly not the case. The best I can do is to say, "learn a programming language."

Edit: It also helps to have something you want to program in mind, which can help you narrow down your options.

#10 Getting Started; some solutions

I'm only a hobby programmer these days but I got paid to write code in the 1980s and 1990s. My favorite learning source in the 80s was Recording For The Blind. It's now Learning Ally. I'd borrow a book on some language, a beginner book for dummies usually, read it through and then begin doing the exercises. I hated school, so I liked to do this at my own pace on my own terms. I mastered C and assembly language before there was a 286 let alone a 386 and before there was the concept of objects. So I'm an old fart who isn't up on all the modern things.
When the web became more ubiquitous I used online tutorials. These days I mostly borrow from bookshare.
For Windows users, I'd say Powershell is really fun and JavaScript because you can edit both of those in Notepad. I agree that EdSharp is also wonderful. For Linux you can't go wrong learning some shell scripting before you plunge in to anything harder. I particularly love Perl but it's not a language for everyone; it tends to fit my particular mindset. Curiously the most I ever got paid for programming was writing VBScript rather than assembly because it's what that employer needed and what I knew how to do!
Steer away from those beginner-level courses like Visual Basic that have you working in a graphical user environment. If you are struggling to learn programming concepts you don't need to fight with access to the GUI at this point.
Now if you do want to know the modern stuff, you need to take a course in design patterns and some UML, which is visual. Before I changed careers I did study UML and was careful to pick a course where we worked in groups. Then I decided I didn't want to hassle with the access barriers in modern programming environments and became a computer tech at a college instead. And I find writing programs for my own enjoyment rather than an employer's profit is a better fit for me.
Be aware that many modern jobs still do require command-line knowledge, SQL for example. Though I've mostly mentioned scripting languages, rather than a real Object oriented language like Java, Python or C++, getting started with scripting is an easier path, in my opinion for a blind student!
And I hope some Mac expert chimes in here, as I don't use a mac.