Guys, noob question but what programming languages...
# random
g
Guys, noob question but what programming languages should someone new to the field learn to build a rewarding career? Asking for someone with 1 year exp in data development and SQL.
l
Python + Django Or Nodejs Comes to mind. Python probably has fewer idiosyncrasies compared to JS so might be a more solid place to start at.
πŸ‘Œ 1
m
python + pandas if you want to make a career in Data Science
☝🏼 1
πŸ‘Œ 1
☝️ 1
d
Data dev + Sql next good step will be Python which will get you sorted in many different fields. And then JavaScript. That's all you need really to have a solid start.
πŸ’― 1
h
It depends. I assume you want to target the vast majority of
web-related
jobs. In which case others will have better advice. I hide behind C and Assembly with python "scripts" to stitch things together. If I'd be starting today in the embedded systems field I'd also add Rust and Go. In the end, there are language and framework fads that you don't want to get stuck in.
πŸ’― 1
f
There’s no perfect language or right language, pandemic caused US Feds to hire COBOL developers and pay them top dollar to keep the legacy system working. 🀷 Having said that, if one is going to pursuit data science in general then Python (or even R in some cases), would be really useful.
πŸ’― 1
b
Python, since it's easy to read and understand. Apart from that, it just boils down to how many problems are solved over a course of time. Just remember this: Consistency over quantity. 100 problems solved across 100 days >>>> 100 problems solved in 1 day.
πŸ‘Œ 1
t
I suggest starting with Python and if they want to move full stack development, then JS. https://jaganperi.com/2016/04/11/five-cool-reasons-to-learn-javascript/
πŸ‘Œ 1
g
Thanks for the response guys. Python seems like the right next step.
@mysterious-ability-21557 @helpful-gigabyte-47939 @thousands-morning-63911 @billowy-spoon-1825 again a noob question. But can someone find a job with C++ and SQL skillset?
f
Pure C++ skills are always in demand by hardware cos like Nvidia, AMD, Intel, and the likes, although with Linux adding first-class Rust support for Kernel development, Rust is being looked at as ideal C++ replacement. C++ & SQL skills may be useful for companies who are building database software I think.
βœ… 1
πŸ’― 1
g
Okay so one can find a job if they search hard.
b
C++ alone would be a niche by itself, Personally, I’m unsure if proficiency in C++ & SQL would be a sole requirement.
πŸ’― 1
g
Alright. Appreciate the insight!
b
It would really boil down to the problem solving ability One could definitely practice solving problems on C++ on Hackerrank, etc. Since the problem solving muscle gets transferred over to other languages. For example, I’ve mostly worked with Python most of the time. But I can easily write other languages if needed if I get internet access. (albiet might not meet standards or best practices)
πŸ‘Œ 1
I know places that often hire folks who have prior experience in Java, Never written a line in Python, getting hired to work on Python And for the most part, haven’t regretted.
πŸ‘Œ 1
f
Also keep in mind that depending on where one is applying, 1 year experienced candidate is usually evaluated with whiteboard-style interview regardless of how much technical knowledge they have with a given tool, so knowing advanced C++ concepts may not be of much use. On the contrary, someone with say 3-5 years of C++ experience is sought after by companies who want specialized knowledge of language constructs.
πŸ‘Œ 1
g
Alright this makes things much more clear. .
l
The thing is that a person who has just started C++ may not be much in demand or may not even get many opportunities. No one is probably looking for a C++ fresher. You'd need to have deep knowledge on low level stuff to be in-demand - which would take many years of tinkering about. Or if you were really into these things, you'd already be into low-level programming, ASM, etc. Compared to that, you'd probably have a higher chance of landing a job (if that is the purpose) with one of the more common frameworks (node / python / etc). Also, a lot of the "cool" stuff you would want to do with C / C++ may not be possible at your home setup. (writing device drivers, etc).
πŸ‘Œ 1
h
@loud-glass-33663 That last bit about not being able to use C/C++ in your home setup is not true πŸ˜‰ Just downloading the source code to most of the Linux desktop stack will show thousand of packages to dip your toes in.
I agree with the sentiment about C++ freshers. 99% of the C++ programmers I've seen are really average (including me) - they're unable to use the real power of C++ and just do C programming with C++ syntax. However, the really good ones can do magic and are highly sought after. There is a big demand for C++ programmers for UI toolkits, databases, automotive software, etc. where Java is just a hog and performance is critical.
πŸ‘Œ 1
l
No of course @helpful-gigabyte-47939 I was mentioning it from the point of view of someone looking to start learning C++ to move into a tech based job. I would assume it is a longer and a more perilous route? My note was from me speaking to one of my cousins who is an engineer with NVidia. She joined TCS as a fresher - and was put in the C/C++ batch. After years of working on client projects, etc. she is now an adept programmer writing drivers for devices, etc. That I'd imagine might be more challenging (less motivating) to do from home?
gratitude thank you 1
h
@loud-glass-33663 The length of time to get proficient with C/C++ is unfortunately caused by the changes in curriculum, IMHO. Students are now starting off with Java, Python now instead of C/assembly. So they don't gain enough knowledge about HW architecture, memory management, performance because there is a safety net in these higher level languages (interpreter, garbage collector, optimising compilers, etc.). So TCS, etc. has to train them for this work. With low cost hardware such as Arduino and Raspberry Pi, anybody can be doing what you describe at any age at home for a few hundred rupees. That's how I got started. But you don't even need to be thinking embedded or device drivers for C/C++. Oracle DB is written in C, SQL server in C++. Web servers such as Apache/Nginx are written in C. So are compilers and most system libraries. Browsers are written in C++. Even the node.js engine is written in C++ (since it was based on Chrome). So there is plenty to do with C/C++ outside HW/embedded if one really want to get into that area of systems programming.
πŸ‘ 1
πŸ’― 1
g
Thanks for the detailed discussion on this guys. @loud-glass-33663 @helpful-gigabyte-47939 This will def go a long way!
k
@glamorous-wolf-66966 Looks like I'm late to the party but I have a differing opinion. I always suggest learning either of Java or JavaScript as a first language because both enable you to be a full-stack dev. With JS, you can learn node for backend and react or angular for buliding frontends. While with Java there is android programming on the frontend and spring hibernate on the backend. Being full-stack will help you write full fledged apps and showcase or even sell independent work.
πŸ‘Œ 1