Click here to Skip to main content
15,887,135 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
Assuming that one knows nothing about programming, what concepts does one need to master in order to create an app like uber/taxify/liftago? Let's say ios for starters. Please write your experience as well.

Thank you!

What I have tried:

Before I get into learning swift I want to make sure I have a mind map of the exact things I need to learn to create the app. I have a project in mind already and I want to be efficient in what I am learning.
Posted
Updated 10-Aug-20 3:12am
Comments
Richard MacCutchan 10-Aug-20 9:38am    
Until you become proficient in a programming language you have no chance of creating such a system. All of these companies employ many experienced programmers in all the different disciplines. Web design (HTML, CSS, Javascript), Web backend (ASP.NET or PHP), database (SQL, Oracle or similar), Messaging (email, sms), etc, etc. Sorry, but you have no chance.
BillWoodruff 10-Aug-20 13:24pm    
Venture Capital

Quote:
Thank you for your suggestion. However, i find that working specifically on the project would be more motivating, as I can get easily bored with the small projects. That's why I wanted to learn specifically aspects that I can apply to my project straight away. I don't have intrinsic motivation to learn programming, it's purely instrumental. I hope you know what I mean.


And that's the whole problem: until you have good knowledge of the whole language, you can't design any major project and expect to have a usable product at the end simply because when you start the initial design and coding you have no idea what the language and the framework it works in can do, much less how to make it do that.

Think about driving a car: it's easy to start the engine, slam your foot on the throttle and you are off! But ... how do you change gear? Why should you change gear? How do you slow down? What kind of speed should you try to take that corner at? What's the "hand brake" for and how do you release it? What's the third pedal - the one on the left - for?
Why did the engine stop? Why am I going backwards into a tree? What are those blue lights on the cars behind for, and how do I turn them on on my car? Why should I obey speed limits? What the heck is a driving licence, and should I get one? What's insurance for?

These are all "framework" issues that as an initial driver you (mostly) don't have to worry about too much - as you gain experience in driving an instructor will introduce you to each of them in a safe and consistent way. But if you just jump in a car for the first time and try to drive across a major city to another major city 500Km away what you end up with won't be in a suitable condition to do the return journey - assuming you are in a suitable condition to do it!

"Little projects" are dull, are "boring" - but they are there for a reason - to get you to think the right way and fully understand what you are doing.

There are no shortcuts to becoming a developer: you need knowledge and experience. If you jump into too big a project (and an Uber app certainly qualifies as that!) too early all you will end up with is a spit-and-duct-tape pile of rubbish that falls over every five minutes and is impossible to maintain.

Sorry, but ... that's the way these things work.
 
Share this answer
 
Comments
Zoro K 10-Aug-20 9:45am    
I see what you mean. Thank you for explaining it in such detail. I will start learning in detail.
BillWoodruff 10-Aug-20 13:25pm    
+5 Eloquent !
To learn programming:
You have to know that you can do pretty much anything in any language, simply some languages are harder for beginners because there is more pitfalls to handle.
You need to master a set of techniques that are the basis of the job and are not linked to a language.

Advices:
- Start with an easy/safe language: VB, Java, C#, not C or C++. I do not recommend to start with Python either because of the usage of indentation.
- Read documentation / Follow tutorials (a lot of them)
- Start with tiny/useless projects, the purpose is to learn programming, not doing something useful.
- Start with console mode programs (no fancy graphics, no mouse)
- Learn debugger (an incredible learning tool)
Debugger - Wikipedia, the free encyclopedia[^]
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^]
- A problem ? Google is your friend.
- Learn one or more analyze methods, E.W. Djikstra/N. Wirth Stepwize Refinement/top-Down method is a good start.
Structured Programming.pdf[^]
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]
- Learn Algorithms and Data-Structures.
- Learn Boole algebra
- Learn SQL
- Learn Databases design and Administration
Introduction to database design[^]
1NF, 2NF, 3NF and BCNF in Database Normalization | DBMS Tutorial | Studytonight[^]
- Learn Regular Expressions

Interesting link:
stanford.edu: Learn to Program[^]
CodersLegacy - Imparting knowledge to the Future[^]
W3Schools Online Web Tutorials[^]

There is no shortcut to knowledge, no one can learn for you, you are the only one that can do it.
Remember the exercises and little projects are not here to make something useful, they are here to teach you programming.
 
Share this answer
 
v2
Comments
OriginalGriff 10-Aug-20 8:58am    
The OP posted as a solution:
"Thank you for your suggestion. However, i find that working specifically on the project would be more motivating, as I can get easily bored with the small projects. That's why I wanted to learn specifically aspects that I can apply to my project straight away. I don't have intrinsic motivation to learn programming, it's purely instrumental. I hope you know what I mean."
Patrice T 10-Aug-20 9:05am    
Thank you for signaling, but have seen it already.
Note that the solution is removed.
OriginalGriff 10-Aug-20 9:33am    
I made it disappear after letting the OP know what he did wrong.
Didn't want it there to attract downvotes.
[no name] 10-Aug-20 11:10am    
Have a 5.
Patrice T 10-Aug-20 11:40am    
Thank you

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900