Learning software development methods

Legion

Gaming Lord
Staff member
Nov 23, 2011
1,801
669
Hey,

So Im currently trying to learn software development languages to make apps, programs, and other applications. (C++, Python, Swift). Some have caught my eye, and I'm trying each of them. Never learned a coding language before, so I'm just curious on how everyone learned, tested, and worked on these kinds of languages. Current goal is making an app idea I have using swift (since I work for Apple, maybe a career path one day to learn their own programming language). What are your "must learn" languages that you believe are beneficial in these areas?

Thoughts?
Thanks!
 

Adil

DevBest CEO
May 28, 2011
1,276
713
javascript
python
swift/java for app development

maybe .net

C++ is good to learn but you can shoot yourself in the foot (and head) very easily, you have to be careful (especially since C++ has introduced a lot of new things in the past decade or so)
Python/JS are easier, safer bets for your first language. Learn by doing - building really simple apps in Swift will teach you a lot about development.

Also make sure you learn about good UX design, good code design, etc
 

Legion

Gaming Lord
Staff member
Nov 23, 2011
1,801
669
javascript
python
swift/java for app development

maybe .net

C++ is good to learn but you can shoot yourself in the foot (and head) very easily, you have to be careful (especially since C++ has introduced a lot of new things in the past decade or so)
Python/JS are easier, safer bets for your first language. Learn by doing - building really simple apps in Swift will teach you a lot about development.

Also make sure you learn about good UX design, good code design, etc
Any that you'd say are more "beginner friendly"? I've heard that a lot of them are similar too, so like once you know one of them, it's a lot easier to learn another language as the concepts are the same and its more syntax based.
Also, any particular text editors for these languages? Currently testing with Xcode on Mac. (Obviously Mac products for swift development).
 

LeChris

github.com/habbo-hotel
Sep 30, 2013
2,725
1,307
Any that you'd say are more "beginner friendly"? I've heard that a lot of them are similar too, so like once you know one of them, it's a lot easier to learn another language as the concepts are the same and its more syntax based.
Also, any particular text editors for these languages? Currently testing with Xcode on Mac. (Obviously Mac products for swift development).
Typescript is fairly beginner friendly and learning type based programming will help transition to other languages.

Typescript with WebStorm as an IDE is what I personally use, but you can stick with VSCode for a free option
 

Legion

Gaming Lord
Staff member
Nov 23, 2011
1,801
669
Learn C# .NET as it comes handy everywhere. Not just software but you'll be able to use it everywhere. Python seems pretty useless. After you learn C# try to stick with something like MySQL first and then move onto things like PostgreSQL and MongoDB. Afterwards if you want to learn a powerful language Golang is one of them (Google uses it) or Rust. Swift will be VERY easy after you learn those. Of course it'll be a challenge but everything has documentation and trying out different projects on Github will definitely help.

If you ever decide to make a powerful / scalable app the languages I have listed above are the best. Especially C# it's very flexible but not as powerful as Golang and Rust.
Also Golang and Rust Developer job is one of the highest paying jobs.

After that learning languages like C++, Java and Swift will be nothing to you.




I haven't seen anything good about Python except Flask.
Ive heard a lot about using github. Any tips to navigating that on projects to test with? Never really dealt with it at all.
 

Adil

DevBest CEO
May 28, 2011
1,276
713
Learn C# .NET as it comes handy everywhere. Not just software but you'll be able to use it everywhere. Python seems pretty useless. After you learn C# try to stick with something like MySQL first and then move onto things like PostgreSQL and MongoDB. Afterwards if you want to learn a powerful language Golang is one of them (Google uses it) or Rust. Swift will be VERY easy after you learn those. Of course it'll be a challenge but everything has documentation and trying out different projects on Github will definitely help.

If you ever decide to make a powerful / scalable app the languages I have listed above are the best. Especially C# it's very flexible but not as powerful as Golang and Rust.
Also Golang and Rust Developer job is one of the highest paying jobs.

After that learning languages like C++, Java and Swift will be nothing to you.




I haven't seen anything good about Python except Flask.

MongoDB is a load of BS, there is no complexity difference between postgres and mysql. Python is not 'useless', if it was it would not be one of the _most_ popular languages worldwide ( ). Some of the libraries written in Python include:
* Django (used by Instagram)
* Flask
* SQLAlchemy
* Numpy
* Scikit learn
* Tensorflow
* Pytorch
etc
 
Last edited:

Legion

Gaming Lord
Staff member
Nov 23, 2011
1,801
669
It all depends, Swift goes well with Microsoft products.
C++, C# etc...

They are very understandable or atleast for me. He can go ahead and learn Objective C as Apple used it at some point before Swift.
But again I personally think if he learns powerful languages it'll be easier for him to learn other languages after.
Like Java and so on...
That’s what I’ve been hearing. Learning something like c++ and it’s a lot easier to learn an object oriented language following those. Hence why I was interested in Swift for the functionality of macOS and iOS development standpoint.
 

Adil

DevBest CEO
May 28, 2011
1,276
713
This is my personal views. I recommended to him what I think is the most efficient way for him to start. If he starts a project with Python he'll migrate it to a more powerful language later on anyway.
Python will just waste his time. Pretty sure Python cannot handle many requests per second. Same for C# but it's way popular and he can be very creative with it hence why recommended.
Mongo is not BS if you work with Mobile Apps. Comparing MySQL and PostgreSQL they don't have much differences as MySQL is catching up but I still think PostgreSQL does a better job when it comes to performance or at least for me. And some NoSQL stuff.


I didn't say Python is shit or you cannot do anything with it. But it's like me telling him to learn Perl, it won't do much for him. Or telling a Game Developer who works with C++ to learn LUA.
It's useless for them.

I haven't heard any big companies like Banks or Technology Platforms using those that you listed above.
But I respect Python it has it's ups and downs all languages do.


Python can handle many requests per second... what are you on about?
MongoDB offers no benefit over Postgres, unless you have an extremely specialised area where a document oriented database would provide benefit over a relational one. Even then, Postgre's JSONB type will do what you need

Google use Python. Amazon use Python. JP Morgan use Python. Goldman Sachs use Python. Uber use Python. Spotify use Python.

The list goes on and one mate, you need to stop waffling.

(Go and Rust are two very good languages though)
 

Legion

Gaming Lord
Staff member
Nov 23, 2011
1,801
669
So @Adil and @Parsov, would you say it's easier to download a project already made and mess with it or read the documentation, then try to build something myself?
 

Adil

DevBest CEO
May 28, 2011
1,276
713
Not as many as as those 2 languages. Firstly you said there was no comparison in MySQL and PostgreSQL now you're saying Mongo doesn't. They are completely different things and beneficial in their own ways. End of the day performance is based on the way you code and save your data within your application.

Also pretty sure google only uses python in some areas now most of it is Golang and C++.
Amazon use Perl and C++ for the most part.

Most big companies use many languages.

Most of them though stick with C++ or at least big ones.
However I think it's just better off if he learns C# first because it's flexible and very quickly growing he can be creative with it especially when Visual Studio is one of the best IDE's.
He can try out making mobile apps, games anything once he get's the logic behind it. The rest will not be as hard as getting started from 0 knowledge. After that he can slowly start to look into some Rust projects and play around with them read about them understand how it works. It won't be as hard because he will already have experience with C#. And in his spare time when his not learning about the new language he can make a cool project real-quick with C# and have some fun. I personally enjoy C# it's one of the greatest languages out there also.

After learning Rust he can migrate whichever projects he wants to the new language which will make them double as powerful as they were before. He can start making new Projects in Rust and he might even end up getting a very high paying job, I would say around 50,000$ for the ones that have normal experience but not extended knowledge of that language.

Or if not after learning Rust it will be super easy for him to learn Swift and finally succeed in getting the job he wants.
After that if he wants he can dig deeper and learn some Objective-C to make his knowledge solid then take a look at C++ combination of all those languages will make C++ look like nothing.

Databases are important also, If you're gonna stick to big projects & companies most of them use NoSQL.
MongoDB, Cassandra, etc...
Try learning Java before using NoSQL trust me it'll come in handy but not a must.
You'll end up learning how they work anyway.

Anyway, Just because big companies use some languages doesn't mean he needs to specifically learn them. He mentioned Apple which uses Swift and that's what he prefers to end up learning to expand his career with that business. The way I said is the easiest way as Visual Studio is greatest IDE and C# is pretty expanded meaning he can do anything with it and at the same time enjoy as it's a fun language to play around with.

First you say "I haven't heard any big companies like Banks or Technology Platforms using those that you listed above. " then you completely ignore the fact that big companies do indeed use python (among a wide range of languages/technologies). I think you are waffling a bit. It's not good.

C++ is a good option but it's way too easy to shoot yourself in the foot with it - "performance" does not become an issue until you start programming at a massive scale..

I did not say there is no comparison between postgres and mysql - I said there is no complexity difference. They both expose a very similar user interface through SQL, differing in a few data types and functions.

Again, your blanket statement about NoSQL databases is factually wrong - Amazon use SQL comprehensively throughout all their applications, as do Google, Microsoft, Salesforce, Apple, Facebook... name a company and they probably use SQL too. NoSQL is also used heavily across many different companies.


@Legion mixing the two approaches is the best idea imo. Find what works for you though; if you learn more by reading others code concentrate on that, if you learn more by building build a bunch of random interesting things (one of the first android apps I made was a time based shutdown button - e.g. you set it to 60 minutes and it will turn the phone off after 60 minutes:
 

Ecko

23:37 [autobots] -!- eckostylez [[email protected]]
Nov 25, 2012
1,396
960
Comparing all these things with opinions gets nowhere unless you have empirical evidence to back it up.

Everyone has different ways of learning. The way I started was much smaller since open source projects weren't really that big or readily available. I started on Windows but open source got me curious, and shortly after I setup FreeBSD on its own partition with dual boot. Bash was one of the first things I started to learn and for the most part it was simple things like making aliases to run a one liner. Gradually it became silly projects like login via IMAP with PHP and return the subject on any new emails. On Windows, you would have to open your browser or email client to do this and it was usually a multi step process. For me it was just "php /php-scripts/checkmail.php".

After that I got more into gaming and Quake 3 allowed scripting in the client, and started making rocket jumping scripts where one hotkey made you look straight down, switch to a rocket launcher, shoot, then look back to right before you pressed the hotkey. Then it was RuneScape Classic and botting, where writing scripts in very basic Java was the norm since all the good scripts were private and cost $$.

All it is is taking things you enjoy and finding a practical way to learn from it.
 

Adil

DevBest CEO
May 28, 2011
1,276
713
That's why I told him to learn C# as it's easier compared to C++.
Not a big difference anyway, or atleast for me. They might use it, but companies use many languages sometimes, It's C++ for the most part.
Again I did not say Python is shit but I think Microsoft Platforms are more openly used and expanding quicker than others. I'm just giving him my views. Don't know why you are concerned.
I recommended PostgreSQL because from my experience PostgreSQL does a better job at speed & complex queries. And Postgre is just I guess "better" SQL language.
You might disagree But again this is my views. However MySQL is not bad it's catching up.

Also pretty sure Apple uses NoSQL which again he said he wouldn't mind working for them. Besides that it's used a lot and very efficient.
I wouldn't be able to make a solid statement about a language being shit because none of them are, they are just used in different places.

He can still learn Python I didn't say he shouldn't use it. He is pursuing this job career that he wants and I'm only giving him directions.
If he mentioned he worked for a company that uses Django then I would recommend Python.

I'm not waffling you're just falsely disagreeing with me because for some reason you think Python does a better job than Rust or GoLang. (it doesn't).
And for the most part C++ is used.
Post automatically merged:


First try to just look around in a ready project read the code and see if you can understand some of it. Try to track where some features are coming from.
Look around in the Core aswell see how everything is done. Then try to re-create a feature but differently and look at the code inside the project already however if you see that you are getting errors or you are not doing something correctly Google it or read documentation about it. And then open a project from scratch and use some of the code from that old project that you had but try to completely re-write it in your own way. Like changing where codes are. This way you'll know how your project is setup and where everything is so it'll be easier for you track things down quicker. After try to make a different project but with a similar purpose you'll slowly start getting better at what you do.

nowhere did I say python is better than language x..
 

griimnak

You're a slave to the money then you die
Jul 20, 2013
955
794
Hello, Python fanboy here.

I'd say Python is a great place to start, for learning basic syntax of programming. if else blocks, try and catch, imports and modules. It's all really simple and forgiving in python.
Javascript is a must as you'll learn the fundamentals of the DOM and standard ECMAScript without frontend libraries. This knowledge will carry over nicely when you transition to Nodejs.
And Java is great because it seems to be a standard in universities and workplaces. It'll teach you OOP, types and Access modifiers which also carries over to php, C++, C#.

And don't underestimate Python just because it's easy. If you delve deeply into Python you'll realize you can make almost any app, program, webapp or server with it.
It's a really productive and powerful language, that's why it's my go-to. And if you're interested in AI at all, python is basically right at the frontline with

Python will just waste his time. Pretty sure Python cannot handle many requests per second.
and are still among the top web frameworks. Performance is not an issue because there's things like gunicorn etc.
is my favorite but it's not typically used for production, more of a micro framework.
 
Last edited:

griimnak

You're a slave to the money then you die
Jul 20, 2013
955
794
Python is not an easy language depends on what you use it.
I've used Python once and it failed to get to my standards. I tried for Telecommunication and Broadcast however it just doesn't do the job as good as Platforms by Microsoft especially C++.
C# and F# are good combination as well but unheard of. Machine Learning most of them which I've seen are done by C++, Even that one you sent there has it. But again sometimes platforms and software's use many languages.

Again I'm not saying Python is bad you're giving him the long route to start with an easy language for Beginners and at the end come to the point of learning Microsoft Products.
Why not start from them in the first place? Again the most powerful languages are Rust and Golang they are even ahead of C++ when it comes to performance. I've tested Python it's nothing like it. It can still be good at performance I never said it's shit at it, But not as good as those languages.

I would never ever recommend golang as someone's first language.. it's so syntactically restrictive and they HAVE to use main() and package.
I'm not saying Rust or Go are bad at all, I like them too. But they are advanced and would leave a new person confused, these are languages where you have to write a certain way, and they might not like that.

Anyways these comparisons you're making are just silly. Python is interpreted, it's nothing more than opening up notepad and using a command prompt. Don't need an IDE or compiler
Not sure what's so hard about that..
 

Silenos

Obsessed.
Aug 7, 2017
104
65
Python is not a easy language? Total bullshit! PepeHands
It's easy-to-learn, easy-to-use, easy-to-deploy, enjoys immense community support, provides excellent library support and it's fast.
I can say it is one of the most lucrative languages to learn and start with, undoubtedly.

By the way, take a look at this here:

All languages have their advantages and disadvantages, it depends on what you want to achieve.
But I can agree with one thing: RUSTLANG FTW!
 

Parsov

Member
May 18, 2016
315
206
I would never ever recommend golang as someone's first language.. it's so syntactically restrictive and they HAVE to use main() and package.
I'm not saying Rust or Go are bad at all, I like them too. But they are advanced and would leave a new person confused, these are languages where you have to write a certain way, and they might not like that.

Anyways these comparisons you're making are just silly. Python is interpreted, it's nothing more than opening up notepad and using a command prompt. Don't need an IDE or compiler
Not sure what's so hard about that..
You misunderstood what I said I didn't say Python is shit and I didn't tell him to start with Golang I told him to start with C#.
Post automatically merged:

Python is not a easy language? Total bullshit! PepeHands
It's easy-to-learn, easy-to-use, easy-to-deploy, enjoys immense community support, provides excellent library support and it's fast.
I can say it is one of the most lucrative languages to learn and start with, undoubtedly.

By the way, take a look at this here:

All languages have their advantages and disadvantages, it depends on what you want to achieve.
But I can agree with one thing: RUSTLANG FTW!
That's what I said I said depends on what you want to do at the end of the day and again I did not say Python is a bad language.
Post automatically merged:

Python is not a easy language? Total bullshit! PepeHands
It's easy-to-learn, easy-to-use, easy-to-deploy, enjoys immense community support, provides excellent library support and it's fast.
I can say it is one of the most lucrative languages to learn and start with, undoubtedly.

By the way, take a look at this here:

All languages have their advantages and disadvantages, it depends on what you want to achieve.
But I can agree with one thing: RUSTLANG FTW!
He said don't underestimate Python because it's easy I just wanted to add that's its not always easy.
It can be complex sometimes. That's what I meant I didn't mean it's a hard language to start from in-fact Python is also a very understandable straight forward language.
 

RastaLulz

fight teh power
Staff member
May 3, 2010
3,926
3,920
Honestly, just pick something that interests you, and make it your goal to build/understand that. There's plenty of resources out there.

If you're a visual learner, look for tutorials on YouTube, or find a course on (or something similar to, be it niche-specific like Laracasts, or another generalized site). In addition to that, for popular languages (if there's a UI involved) look at todo examples, and figure out how they work, and try and create your own. You can also gather some insight of where the field is heading by looking into survey results, .

Beyond that, I don't think I'd recommend specifically trying to target Apple's stack just because you work there; FAANG is super competitive, and requires a lot of hard work and dedication (or having the right connection). Remember if you want this to be a career, it'll be a marathon, and so the most important thing is getting your foot in the door at a place that will help you grow, and allow you to work on things that interest you.
 

Users who are viewing this thread

Top