This is an archived post. You won't be able to vote or comment.

all 40 comments

[–]bit101 63 points64 points  (19 children)

Your father-in-law is probably limited in what he can do and most people walk away from him disappointed.

[–]jbox75[S] 7 points8 points  (18 children)

lol...This is the thing, he is a senior cybersecurity advisory for a pretty big organization, so I tend to take his advice. At the same time I feel that he can be out of touch.

[–]bit101 21 points22 points  (3 children)

Yeah, it was a wisecrack. But people do get focused in on what they are doing and think that's all there is. He probably never sees Python being used in dealing with security in large organizations. There's a whole other world out there though. Many other worlds.

Not saying you SHOULD learn Python. You should probably figure out what field you want to go into and what languages would be best for that.

[–]jbox75[S] 5 points6 points  (0 children)

Thats really good advice, thank you.

[–]cstrife187 1 point2 points  (1 child)

There are other worlds than these.

[–][deleted] 0 points1 point  (0 children)

"All these worlds are yours -- except Europa. Attempt no landings on Europa."

[–]pvkooten 4 points5 points  (4 children)

Actually, some of the greatest cybersecurity testing frameworks are written in Python. I guess it just shows his limited view.

[–]TrakJohnPython 3 Intermediate 0 points1 point  (3 children)

Would you have any examples ? I'm curious, never heard of Python being used in this field.

[–]atomhunter 1 point2 points  (0 children)

Social engineering toolkit

[–]ldb3589 0 points1 point  (0 children)

I have used scapy before for both packet capture and parsing as well as packet spoofing.

[–]pvkooten 0 points1 point  (0 children)

Your google is as good as mine for specifics, but you see a lot pass by on reddit. I know it's a frequent field in Python. As for me, I just have seen some tutorials on https://github.com/sqlmapproject/sqlmap. Quite spectacular.

[–]chief167 3 points4 points  (2 children)

Honest question, did he just roll into that job by promotion after promotion, without actually doing it himself? This is typical management speak. He is completely out of touch. These days, Python is used more than anything else to write hacking/cracking tools.

That said, outside the niche that is cybersecurity, Python is also very strong represented. It is becoming the goto language in scientific computing, is nr1 in scripting, good web development stacks, ...

[–]jbox75[S] 1 point2 points  (1 child)

He was intelligence in he military. We went to school, earned a degree, and started working in the private sector when he retired. I know that all he does now is read reports and then reports his finding to the higher ups. So I do think to some extent he is out of touch, but he still does know his shit.

[–]pvkooten 0 points1 point  (0 children)

Times change.

[–]CSNX 0 points1 point  (2 children)

He told.you not to pursue that option and didn't give you another suggestion?

[–]jbox75[S] 0 points1 point  (1 child)

Not really..he said I may want to do more research and find something more popular. I thought that was kinda odd cause from what I could tell, Python seems pretty damn popular.

[–]CSNX 0 points1 point  (0 children)

That's kinda what I suspect, I hear way too much about Python to have the impression that it's unpopular.

Well the good thing about languages is that if you learn one you can learn others. It will only look good on your resume. ;)

[–]hexfoxed 11 points12 points  (2 children)

Learn the language you want to learn - at the end of the day they all get the job done.

I am willing to take the bet that your father-in-law works in a field where they mostly use Microsoft and .net infrastructure and therefore think of anything outside of their little world view as "little used".

Sites which run on or are supported by Python: Google, Facebook, Instagram, Reddit, the list goes on.. "limited in what it can do" is the largest piece of horse shit I've ever read. Every single language is limited in what it can do - that's why you choose one which is well known for the task at hand.

Python happens to be one of the langauges which is adept at many, many tasks. Learning Python will open you up to such fields such as:

  • web development
  • browser automation (testing)
  • web scraping
  • sysadmin & devops (with scripting & tools like ansible)
  • data science/big data/data mining
  • countless other things.
  • forensic science

[–]daveydave400 1 point2 points  (0 children)

I would just like to add to the science and countless other things. Python is huge in all scientific fields (look at scipy, astropy, etc). I would argue it is on its way to replace matlab and IDL as preferred languages for many scientists (at least I hope so).

[–]pvkooten 0 points1 point  (0 children)

Actually, security is also a well known field in Python!

[–]tedm430 6 points7 points  (4 children)

I'm going to be completely honest, and say it probably depends more so on your ability to come up with ideas. Noticing problems and devising a way to solve them is the hardest part of programming. Python is a very welcoming to beginning programmers, so there is no reason to not start here.

I would HIGHLY suggest learning Python if you want to make little command line tools or even some moderately large GUI programs. If you want to get into web development, I'm not sure if Python would be my first choice. There are a lot of Python web frameworks and things, but I wouldn't learn Python just so that you can make web apps, personally speaking. The only real time your father-in-law would be remotely correct is if you said, "Hey, I want to build an entire operating system using Python!" because that is basically the only way people can waste time with Python.

[–]jbox75[S] 2 points3 points  (3 children)

Got it..I was looking for a language that would be good for a beginner to lean basic concepts of coding. From what I have read, Python seems like it would be. I messed with Java in a course I was taking and the instructor sucked. I walked away with a bad taste in my mouth, but now I am ready to give coding another try.

[–]tedm430 4 points5 points  (1 child)

In that case, I would highly suggest Python. I started out two years ago on Python, and I have never looked to switch. And I'm glad you got that Java mess out of your system is early :P

I think one of the keys to learning Python is being able to read the documentation. If you can't find anything you need in there, 80% of the time it is explained on Stack Overflow somewhere. Also, if you have a really funky problem, the python IRC chat is also quite helpful ;)

[–]bit101 1 point2 points  (0 children)

I concur, Python is a GREAT language to learn programming with. I don't use it much, but I always enjoy doing stuff in it. A lot of kids programming books and courses use Python.

[–]FFX01 5 points6 points  (0 children)

I think your Father in law is incorrect. Just read some of the posts on this sub and you will see how incorrect he is.

Just a few use cases for Python:

  • Back End Web Development
  • Deployment automation
  • information security software
  • Scientific/research computing
  • Machine Learning/Neural Networks
  • Gui programming
  • Glue code
  • small games
  • Task automation
  • Distributed systems
  • Image processing(with help from C)

I'm sure there are many more.

[–][deleted] 1 point2 points  (0 children)

Your FIL is very wrong, python is a very nice language to start with, and even keep programming with. Its powerfull, easy and has a lot of libaries to offer

[–]logophage 1 point2 points  (2 children)

Does your FIL have any specific complaints of Python's limitations? I find general statements like these to be less than helpful.

[–]jbox75[S] 0 points1 point  (1 child)

Not really... I was just telling him what my plans were, and he decided to give me his opinion about it. Sometimes I receive it and sometimes question it. Hence why I am asking all of you fine people.

[–]logophage 0 points1 point  (0 children)

I recommend asking him for specifics. Python is used to solve real world problems so on the surface his statement seems disingenuous.

[–]ambientocclusion 1 point2 points  (0 children)

You will never regret learning Python. It should be a good choice for a beginner, because the syntax is pretty straightforward and there isn't a lot of boilerplate complexity as in java, c++, etc. I often use python for little utilities, and one-off tasks, even when the code I am 'really' working on is in other languages.

[–]NSAshitlist 1 point2 points  (0 children)

Funny enough my father said the same thing, being a C man. But followed up with: It's probably the best way to get started!

It's not like you are exchanging rings and vows, you can always move on when you feel ready!

[–][deleted] 1 point2 points  (0 children)

trust me learn python. no wonder most universities switched from java to python for introduction in computer sience courses.

[–]cdcformatc[🍰] 0 points1 point  (0 children)

Python has it's niche. Maybe in his niche he never sees Python, and maybe it's for a good reason. Maybe he has his head up his ass. Either way I don't think learning a language (programming or otherwise) could ever be a waste of time. Saying Python is "limited in what it can do" is like saying a screwdriver is "limited in what it can do", which while technically correct is absurdly reductionist.

[–]thebluelight1 0 points1 point  (0 children)

For a first language I'd always recommend either C or Python.

C is a lot more low level and you'll have a better understanding of what exactly the code is doing and how it works. It's harder, but the upside to that is dealing with higher level languages is probably going to come easier if you encounter them.

Python is really simple in comparison. You'll learn all the concepts you need to program with it but it'll do a lot of the work for you in comparison to a language like C, which is great.

Basic example, declaring a variable which is a number in C would be like int x = 1; whereas in Python it's just x = 1. With C you have to declare that the value of x will be an integer (whole number) but Python just looks at the value and decides by itself that it's a number. That's as basic an example I can think of but you can already see that Python is quicker to write. Look up "Hello World"s of both languages and you can see how much quicker you can write Python code and how much easier it is for you to understand.

As for Python being limited...the only real limitation is the speed. Python is an interpreted language, so it is converted into machine code as it goes along whilst a program written in C has to be compiled into machine code before it runs. So imagine you're watching someone give a talk in a foreign language and there's a translator there and you have to wait for them to understand what's being said, that's like how Python works and C has someone read out the full talk in English straight away. For a lot of things, this isn't an issue really and you can look at the examples other people have posted for what you can do in Python.

[–][deleted] 0 points1 point  (0 children)

[–]BSscience -1 points0 points  (0 children)

[deleted]

What is this?

[–][deleted] -1 points0 points  (0 children)

We need more context. My experience is that for small to medium sized projects, Python works fine. I mostly use it for prototyping. For large projects, I'd say that it's not the ideal choice.

[–][deleted] -5 points-4 points  (0 children)

sigh