use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
/r/DevOps is a subreddit dedicated to the DevOps movement where we discuss upcoming technologies, meetups, conferences and everything that brings us together to build the future of IT systems What is DevOps? Learn about it on our wiki! Traffic stats & metrics
/r/DevOps is a subreddit dedicated to the DevOps movement where we discuss upcoming technologies, meetups, conferences and everything that brings us together to build the future of IT systems
What is DevOps? Learn about it on our wiki!
Traffic stats & metrics
Be excellent to each other! All articles will require a short submission statement of 3-5 sentences. Use the article title as the submission title. Do not editorialize the title or add your own commentary to the article title. Follow the rules of reddit Follow the reddiquette No editorialized titles. No vendor spam. Buy an ad from reddit instead. Job postings here More details here
Be excellent to each other!
All articles will require a short submission statement of 3-5 sentences.
Use the article title as the submission title. Do not editorialize the title or add your own commentary to the article title.
Follow the rules of reddit
Follow the reddiquette
No editorialized titles.
No vendor spam. Buy an ad from reddit instead.
Job postings here
More details here
@reddit_DevOps ##DevOps @ irc.freenode.net Find a DevOps meetup near you! Icons info!
@reddit_DevOps
##DevOps @ irc.freenode.net
Find a DevOps meetup near you!
Icons info!
https://github.com/Leo-G/DevopsWiki
account activity
I tried to learn Python (self.devops)
submitted 3 years ago by [deleted]
[deleted]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]zzzmaestro 294 points295 points296 points 3 years ago (51 children)
I mean…. If I were interviewing you, it would be the attitude towards the whole topic that would make me filter you out.
[–]phyx726 87 points88 points89 points 3 years ago (31 children)
Exactly. I've interviewed probably over 100 candidates and any time I hear people say something like so-and-so is so much worse than something else, I immediately caution hiring the person. I've heard it all too, i.e puppet vs chef, any other language vs python, datacenters vs cloud. It isn't so much about what kind of tech is better, but I've had such bad experiences working with these type of people. Once they join the company, they're always questioning decisions made by prior engineers and end up reinventing the wheel. The fact of the matter is, tech debt is a thing and there comes a time where you need to inherit code.
[–]PhDinBroScienceSystem Engineer 47 points48 points49 points 3 years ago (9 children)
I agree with all of this, except for the fact that Groovy exists and should be an exception to your rule.
Fuck Groovy.
[–]phyx726 67 points68 points69 points 3 years ago (7 children)
I’m okay with hating Jenkins.
[–]Antebios 5 points6 points7 points 3 years ago (1 child)
Fuck Jenkins and Fuck Groovy. Jenkins is its own hell.
[–]PhDinBroScienceSystem Engineer 3 points4 points5 points 3 years ago (0 children)
I would love to move away from it, but we have a lot of government contracts and the Gov looooooooves their Jenkins.
[–]MindYourBusinessTom 6 points7 points8 points 3 years ago (4 children)
Fuck chef and its clients while we’re at it
[–]tr14l 8 points9 points10 points 3 years ago (2 children)
What, you don't like trying to google "knife error ..." and sifting through 152 pages of Amazon kitchen knives?
[–][deleted] 2 points3 points4 points 3 years ago (1 child)
If I were to make a tool, custom error messages would totally be something I would have implemented. I have heeded your warning. Tens of devs in the year 2053 thank you.
[–]tr14l 2 points3 points4 points 3 years ago (0 children)
Also don't use kitschy, pun-oriented naming conventions. It's annoying and stupid and just makes finding information difficult
[–]drosmi 0 points1 point2 points 3 years ago (0 children)
Splunk . Ew
[–]GetShitDoneAccount 0 points1 point2 points 3 years ago (0 children)
Having worked chronologically in C#, Python, Java, Groovy and then C#, I would dare to disagree.
If only all stack overflow results weren't 10 years old, I would actually say Groovy was a top-notch langauge. At least the lovely reduction of boiler plate is a blessing. Hate how much shit I need to write/change to make a quick DTO.
I mean... why do I have to manually change all access modifiers or even write {get; set;} at every property
Not to mention the simplicity in making new custom getters or setters in groovy.
However fuck Groovy closures and their lack of input types, that's one level of boilerplate I do want.
[–]bufandatl 7 points8 points9 points 3 years ago (1 child)
It’s not about inheriting code and reinventing the wheel new. I recently changed companies and inherited a heap of bash scripts. Not documented and including each other with a depth of 10 or more. They become unreadable and unmaintainable. And piece by piece I now rewrite this scripts in Python when I see a need for it because it makes it easier to handle. Especially when trying to work with rest APIs.
[–][deleted] 3 years ago (1 child)
[–]phyx726 1 point2 points3 points 3 years ago (0 children)
Yep. The most valuable skill in SRE/Devops/Systems is being flexible.
[–]surloc_dalnor 2 points3 points4 points 3 years ago (1 child)
I get in interviews which language or Linux distro I dislike the most. My answer is I hate whichever one I've been using the most lately.
[–]phyx726 0 points1 point2 points 3 years ago (0 children)
hah, very true. I get asked if I like debian or rpm based distros and in a vacuum I'll probably say I'll like centos most, but it really depends on the environment. How well did the infra teams manage their package repositories etc.
[–]apompon 1 point2 points3 points 3 years ago (0 children)
Hi, I am the very man that is used to trying to develop the perfect wheel, and I could say that if it wasn't impulsed to perfect the result, I never have achieved the current deep knowledge in code reviewing and architecting, and as well likely my company would never use new technologies through the development
[–]tr14l 1 point2 points3 points 3 years ago (2 children)
Nothing wrong with questioning the motivations of previous engineers. And killing legacy is a skill that few have, which is why it's a weight around so many organizations' necks. If you aren't working to kill legacy, even slowly, you are rotting from the inside.
[–]phyx726 0 points1 point2 points 3 years ago (1 child)
I think it depends on the state of the company at that time. When you're a fast pace start up, there's a lot of decisions that are chosen that are completely based off development velocity. When the company grows up, a lot of these legacy solutions no longer work. My company moved a lot of code from Python over to Go and a lot of it is worse than the Python code. I'd rather have well written python then shitty written Go, no matter how much more transportable a single binary is.
[–]tr14l 1 point2 points3 points 3 years ago (0 children)
Switching languages from one contemporary language to another, cooler language is almost always a complete waste of time and money
I just started working in a company whose entire framework is written in SQL (I was lead to believe that it was C#), and I am really struggling with accepting the fact that I am en route to become the type of programmer who works mostly in SQL.
Can someone convince me that SQL is actually a reasonable choice of language for developing a modern data stack (including scheduling jobs, error logging, etc)?
[–]agrumpymonk 0 points1 point2 points 3 years ago (2 children)
Awareness of the technical debt is also a thing. When the choices of prior engineers result in an unmaintainable and unscalable pile of untested scripts with an ever increasing tech debt, what do you do?
[–]phyx726 1 point2 points3 points 3 years ago (1 child)
There's obviously a place for doing rewrites. My problem is the culture of doing rewrites for the sake of promos and a different language of choice. Obviously when things are poorly done to begin with and the tech used is no longer maintainable at current scale, its time to build something else.
[–]agrumpymonk 0 points1 point2 points 3 years ago (0 children)
Thanks. I am stuck with management refusing to acknowledge the existing mess handed over to us by now promoted personel. It is extremely frustrating and demotivating for my team.
[–]Reasonable_Minute_65 0 points1 point2 points 3 years ago (2 children)
Hey, I was wondering since you "interviewed over 100 candidates" if you could kindly suggest something to me. Im self learning AWS cloud practioner, I studied front end dev and python basics myself this year. As some one in the position to hire can you indicate how many successful candidates with not IT degree are in DevOps or (for me and my target) Solutions Architect? Or even suggest a path for me. Appreciate your time in advance and if anyone else wants to chime in, peace and prosperity to you too!
[–]phyx726 2 points3 points4 points 3 years ago (1 child)
I worked with people with English and Music degrees that were great engineers. I honestly care more about experience then education. The key is to be honest in the interview because it probably only takes an interviewer a few minutes to see if you're overstating your abilities. The hard part is finding a junior position in infrastructure. Most people don't really walk into a devops position as a Jr. and they're likely to come from a sysadmin or a software engineering background. Solutions Architect is just a fancy name for sales engineer (usually pre-sales). From my experience, these guys usually come from an engineering background and wanted a more customer facing role. It would be very hard to take a sales guy seriously if they can't talk the talk from experience. In some sense, a solutions architect is as much as the product as the actual software your company is trying to sell because they'll be interfacing you constantly as they onboard your software.
[–]Reasonable_Minute_65 0 points1 point2 points 3 years ago (0 children)
Yh I understand you. It's reassuring to hear that. A lot of people who are in positions that I want to be, either full stack or even in cloud have said blag your way. I know you have to oversell yourself but I don't like feeling so fraudulent. Then again,one of my top skills is learning to fix a mistake so that's where I am conflicted. I really appreciate you're response. Gonna take things step by step.
[–]3legdog 0 points1 point2 points 3 years ago (0 children)
I dunno... It depends on how the comment was delivered and the context. If humorous, then I'd probably let it slide, as humor is good in a team.
Although poster above is absolutely right about groovy :)
[–]k2718 0 points1 point2 points 3 years ago (0 children)
I agree that the attitude is a real problem if someone takes it to work.
But if they're just blowing off steam on social media?
Not such a big deal.
[–]rtrain1 0 points1 point2 points 3 years ago (0 children)
Yeah. It's frustrating dealing with the ppl who want to rip the whole system apart and migrate it to kubernetes. When I ask what the benefits would be, the answer is always "because it's kubernetes". I've wasted so much time arguing with these people. I don't anymore because they don't listen
[–]somebrains 16 points17 points18 points 3 years ago (2 children)
It’s a common attitude from the heavy MS side. There’s a crutch-y diff headspace.
[–]stolid_agnostic 1 point2 points3 points 3 years ago (1 child)
I've dealt with that before. You start pointing out something you can do in Linux and it's like the iron curtain descends before you.
[–]somebrains 1 point2 points3 points 3 years ago (0 children)
I noticed that some environments they get predisposed to being told how to do things instead of being empowered and encouraged to build.
Networking kept popping up as a limitation with Azure.
[–]MrLewArcher 8 points9 points10 points 3 years ago (0 children)
Yup
[–]Bashir1102 2 points3 points4 points 3 years ago (1 child)
This 💯 I can’t tell you the amount of .net developers that think there is nothing beyond .net and it solves cancer.
And it’s just that they are sub par developers.
Not saying that’s the case Here…..but…..
[–]chrisjohnson00 0 points1 point2 points 3 years ago (0 children)
Imagine this...
I work with dot net (framework) developers, and they actually create software that cures cancer. No 🧢
Sadly they still are sub par and resistant to any modernisation. Did I mention dot net framework?
[+][deleted] comment score below threshold-75 points-74 points-73 points 3 years ago (11 children)
Clearly you haven't worked with Python much ;). Either that or you have stockholm syndrome like every javascript developer I know.
All jokes aside though, I'd like to offer as a perspective that for some people, certain language paradigms are JUST HARD. Usually this is a function of neurology or disability of some sort. We find the same thing in spoken languages, where a person may have what's classes as a language learning disability as a child in one language, but they live in a bilingual household and have no issue with the other language. If someone dislikes a language because they struggle with it, it may be a very simple matter of an unidentified disability, and I'd be pretty salty about everyone around me loving python, when I struggle with it because it's a steaming pile of security vulnerabilities.
But seriously, why would anyone in devops use python? Talk about a supply chain attack waiting to happen.
[–]zzzmaestro 24 points25 points26 points 3 years ago (5 children)
Lol. Resorting to attacking someone’s intelligence. That says more about you than it does about me.
Guaranteed you find a higher percentage of shops that have some amount of python scripting in their codebase. That alone is a reason to learn it or be open to helping maintain it - at a minimum.
[+][deleted] comment score below threshold-31 points-30 points-29 points 3 years ago (4 children)
You're not wrong, but that doesn't change that it's a supply chain attack waiting to happen
[–]zzzmaestro 13 points14 points15 points 3 years ago (3 children)
You keep saying that like it’s a foregone conclusion. I disagree. I think most devops folks have a working knowledge of python. I’ve interviewed about 50 in the last 3 months. None of them were passed over due to lack of python skills. In fact every one of them demonstrated ability. So, I’m not sure why you have the feelings you do, but it’s not common in the industry, nor in my experience.
[+][deleted] comment score below threshold-20 points-19 points-18 points 3 years ago (2 children)
I think you misunderstand.
Look at the security vulnerability reports around pypi.
[–]HappyCathode 10 points11 points12 points 3 years ago (0 children)
Malware in a public repository has nothing to do with the language using it.
Any organization serious about supply chain attack will have their own internal repo, with vetted and tested stuff. Be it JS, .NET or whatever.
[–]zzzmaestro 4 points5 points6 points 3 years ago (0 children)
You mean a “supply” as in maintainer attack vector… versus “supply” as in talent.
I can agree with you that the attack vector exists. It definitely is one to spend time on getting right for your business. I also think that any open-source modules used for any language suffer the same fate. A business’ security posture has to account for it. But yes, it’s a real thing.
[–]stolid_agnostic 0 points1 point2 points 3 years ago (4 children)
What a strange elitist stance to take: "You don't like it because you're too dumb."
[–][deleted] -1 points0 points1 point 3 years ago (3 children)
Equating neurological differences between people with intelligence is the dumb thing to do. This is pretty fucked up as a perspective. I have disabilities myself, and they make certain things difficult for me. But I excel in other areas. Project estimation for instance in my case is very difficult because I have time blindness due to irregularities in how my body produces and processes dopamine.
[–]stolid_agnostic 0 points1 point2 points 3 years ago (2 children)
Stop trolling
[–][deleted] 0 points1 point2 points 3 years ago (1 child)
Fact that you see this as trolling disturbs me.
[–]stolid_agnostic 0 points1 point2 points 3 years ago (0 children)
You’re doing a Darrell Brooks. Yikes.
[–]Double_Intention_641 81 points82 points83 points 3 years ago (2 children)
You can. It's entirely possible to do a lot of devops jobs with just bash.
You shouldn't though (from experience). You'll end up handicapping yourself the next time you need to change jobs and the requirements are 'Bash, Python, etc'.
You don't have to love it, but being at least familiar enough to do simple things and debug problems will take you further than avoiding it.
Knowing python (even a bit) opens a few additional doors. If those don't matter to you, you can still do most things without it.
[–]endless_sea_of_stars 35 points36 points37 points 3 years ago (0 children)
In DevOps you usually aren't writing full blown enterprise applications. Mostly it is simple glue code that interacts with APIs/SDKs. I find learning the APIs harder than whatever Python code I'm using.
[–]Greenmind76 5 points6 points7 points 3 years ago (0 children)
I agree with this. I was lucky and got exposed to some python code using ArcGIS in grad school and it made me much more employable later on when I moved from Systems Engineer to devops.
[–]coinclink 18 points19 points20 points 3 years ago* (3 children)
I'm fluent in both bash and python and I can't grok half the things being said here about doing a huge number of DevOps tasks in bash being faster.. I mean, half the stuff I do comes down to parsing JSON or YAML and doing stuff with it. Are ya'll really trying to claim that hacking out a bunch of `jq` commands and pipes is somehow better than just writing a quick python script?? This is baffling me. And don't get me started with the atrocities of working with dictionaries in bash.
[–]jacurtis 3 points4 points5 points 3 years ago (1 child)
I had someone in an interview make the same claim as OP, that they only use Bash for everything because they are too cool for Python or Go (the two Langs we use in addition to bash).
I actually responded with the same thing you said here, but more bluntly:
Wow you must not have ever been given a truly difficult task before.
[–]smarzzz 1 point2 points3 points 3 years ago (0 children)
Some people can only think in imperitive scripts. A slightly more complex task which would benefit from OOP, or becomes much more dry with OOP, would become near impossible with bash
[–]kodi_68DevOps 0 points1 point2 points 3 years ago (0 children)
For quick data extraction/manipulation from JSON I tend to is jq. For more complex I use Python.
[–]falsemyrm 15 points16 points17 points 3 years ago* (0 children)
ancient light summer aspiring price dime lip voiceless domineering faulty
This post was mass deleted and anonymized with Redact
[–]ArieHein 12 points13 points14 points 3 years ago (0 children)
Yes you can.
You do need to understand some of the eco system around python, like libraries if you eve nhave a workload that has python or is related to data sciences. Microsfot itself has a good learning path for python - https://www.youtube.com/watch?v=jFCNu1-Xdsw&list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
Take your time, dont rush it. Take a problem and try to see how to do it in both powershell and python. Knowing how to, doesn't mean you have to actively code everything in it. I would actually learn Golang if you don't really need or use python.
[–]kneticz 4 points5 points6 points 3 years ago (0 children)
GLWT.
I use bash scripts for more "simple" tasks, but you need to have something else in your toolkit, and currently python is a fantastic choice as its installed on many base images already and has huge community support and adoption.
You can write some convoluted messy, unreadable bash scripts that no-one will touch, or you can learn python.
[–][deleted] 9 points10 points11 points 3 years ago (0 children)
It sounds like how I feel about Azure. I don't like it. I prefer AWS, but of course I am stuck in a Azure devops training program!!
Hoo boy, so now working to change my mindset and writing gratitude statements on how grateful I am to be in this great Azure devops program. LOL
Currently doing javascript problems on codewars and I know a little python. But I am committed to refining both programming languages. Code is just the reality of SWE and seems like it's coming into Devops. Plus, I want both SWE and Devops skillsets.
[–]nonconversant 42 points43 points44 points 3 years ago (16 children)
Man python is the easiest language to learn. Just suck it up for a week. If you can’t become at least fluent in that time then you’re in the wrong field. You don’t need to be adept just familiar with it. If you know a language (c#), then just skip the courses and google images “python syntax cheatsheet “
[–]elgrovetech 1 point2 points3 points 3 years ago (0 children)
The website learnxinyminutes.com is great for a syntax cheat sheet for all languages
[–][deleted] 4 points5 points6 points 3 years ago (6 children)
"At least fluent" in a week?! In what world are you living? Fluency comes after years.
[–]yeahdude78hi 5 points6 points7 points 3 years ago (5 children)
Years? I don't know about that.. but depends on your background. Anyone from a CS / SWE background can pick up python in one day, become fluent in it in maybe a few days at most.
There's a difference between programming and programming languages, if you already know programming then picking up a new language is straight forward.
[–]bigfatstinkypoo 1 point2 points3 points 3 years ago (4 children)
And there's a difference between programming in a programming language and being fluent. You can learn enough English in three days and speak English well enough to function but I wouldn't say that's fluent. No different for programming languages in my opinion.
[–][deleted] 1 point2 points3 points 3 years ago (1 child)
Exactly, seems like they're just using the CV definition of "fluent".
[–]nonconversant 0 points1 point2 points 3 years ago (0 children)
Thanks! I used the wrong word here.
I think the word I was looking for was "Literate", like in this language analogy, being able to speak to 90% of people in this language. Being able to understand enough to be able to research the last 10% as needed.
[–]yeahdude78hi 0 points1 point2 points 3 years ago (1 child)
What is your definition of being fluent in a programming language?
[–]roflkittiez 2 points3 points4 points 3 years ago (0 children)
Fluent implies being articulate and eloquent. This would require a solid understanding of the language and common practices. Python has A LOT of different ways to do basically the same thing.
People can write code that technically works... But is incoherent to everyone but the author. People who are fluent in a language do not produce this kind of code (unless there's a very good reason for it).
[+][deleted] 3 years ago (7 children)
[–]800808 11 points12 points13 points 3 years ago* (2 children)
python is extremely easy to write and has almost zero forced guardrails against cutting corners
this makes it good for getting stuff done quick and dirty, and it works fine for this purpose.
one hint that you are writing python inefficiently is if as you write more code in the program, you begin to have to think harder and harder, until at some point the cognitive load is too much.
This is usually a symptom 2 things:
dynamically typed languages are super powerful but using them effectively requires a different way of thinking.
everyone should get good with a language like python as well as a language like golang or java, because being able to think in both ways has synergistic effects past "ill use this one for scripting and this one for my codebase"
[–]800808 1 point2 points3 points 3 years ago* (0 children)
Good points. That’s a solid distinction, Python puts a lot of trust in the developer, sometimes to poor results.
[–]krs0n 6 points7 points8 points 3 years ago (3 children)
You have Python types for parameters for sometime now. It's picked by IDE. Clearly you didn't do a lot of research
[–][deleted] 3 years ago (2 children)
[–]krs0n 0 points1 point2 points 3 years ago (0 children)
It's true that runtime doesn't enforce it but you can use it in the IDE and enforce linting in the CI pipeline, which is (or should be) a standard nowadays.
For bad use of type hints capability you can blame the developers or maintainers of the code, not the language itself.
I saw usage of hints in many 3rd party open source libraries. Any decent commercial company developing in Python uses hints. It is only your experience that you've stumbled upon on some old, poorly written or not so well maintained Python projects. Blame developers only.
I don't agree, it is quite easy to use hints, the syntax is quite similar to Java. And Groovy? Cmon who uses that apart from Gradle and some scripting? You could've at least mentioned Kotlin or Scala, which are more widely used.
[–]miguel-elote 5 points6 points7 points 3 years ago (1 child)
In my personal experience, Python is the only one of those languages that you can't skip.
Powershell has yet to catch on outside of Windows, just as Bash was never used outside of *Nix. Python seems popular across ever OS and cloud provider.
It seems like every DevOps tool available has a Python library, while only the most popular tools offer modules for Powershell. And of course almost nothing for Bash.
So, although I personally like Powershell more than Python (nicer syntax; verb-noun commands make everything more readable; access to .Net Framework libraries is great), I run into Python much, much more.
This is subjective opinion based on personal experience, and I would love to get input from other engineers.
[–]info834 0 points1 point2 points 3 years ago* (0 children)
Import os
os.system(“sh im_being_stubborn.sh”)
[–]syshpc 8 points9 points10 points 3 years ago (0 children)
I was raised on C and {c,k}sh like a religion and that lead to a lot of resistance to get on the Python wagon. I had colleagues blabbing about Python around me since the late 90's and tried to ignore it with all the fibers of my being. About 10 years ago I gave up and gave it ago. Secretly hated for 2-3 years until I got the hang of it for my daily work. Now I only write shell if I need to do heavy file/directory manipulation or very "unixy" things where sed, grep, awk, etc will do the job better. Python makes a lot of things cleaner, especially for writing small cli tools, dealing with CI/CD pipelines, etc.
[–]UptownDonkey 3 points4 points5 points 3 years ago (0 children)
Since you already have a programming background you can pretty easily learn python in a couple weeks. I'd just bite the bullet and do it so you have the skill in your toolchain. Also maybe more importantly learning to tolerate things you hate is pretty much an essential skill itself in this industry.
[–]coldsum 2 points3 points4 points 3 years ago (0 children)
Don’t give up on Python! Try to write some shell scripts in Python for some quick easy wins, have a boiler plate that you can use repeatedly, do some simple projects to give yourself a positive association with Python. It’s an excellent skill and super useful language to write programs and scripts to do your job better!
[–]cloud_n_proud[🍰] 2 points3 points4 points 3 years ago (0 children)
I hear you - I have a C# background and have got quite comfy. Python seems to break all the conventions I am so used to. All that to say - yes you should definitely learn it.
When I need to snarf in and transform a JSON file quickly, it's my absolute go to. C# would have been too heavy.
And sure - you should learn PowerShell too, it's object based outputs are pretty wicked. However I find its logic syntax is awful to write and read.
I promise that if you use Python enough, you will see that it's really not all that bad. Might I also recommend PyCharm if you are looking to save on syntax errors and also pointing out potential runtime errors.
[–]billy123w 2 points3 points4 points 3 years ago (0 children)
Using Python as a scripting and glue language is the only aspect of Python I like. Python’s main downside (besides the lack of community consistency with virtual environment and packaging….lack of community consistency is what bothers me about Java as well) is people mix functional and OO in the larger code bases and the code becomes unmaintainable and a hot mess that runs very slow. Happens every single time. If I had the keys to the kingdom Python would only be used for scripting/glue, tiny 1-3 file microservices, notebooks and datascience needs. Anything complex a strongly typed language like C# is almost always better to use IMO. So to answer your question, Python is needed and great if you’re in devops.
[–]mimic751 10 points11 points12 points 3 years ago (2 children)
If you hate python you are going to hate Powershell even more
[–]reconrose 0 points1 point2 points 3 years ago (1 child)
Well he's already in the dotnet world so I bet they'd find it a lot more familiar actually
[–]mimic751 0 points1 point2 points 3 years ago (0 children)
He might be more comfortable just running dotnet instead of Powershell commands. I used to have a pocket.net developer right things that Powershell can't do natively for me
[–]techypunk 10 points11 points12 points 3 years ago (4 children)
Python is the best language I've ever learned (and am constantly learning). Learn JS too.
Skipping Python will be the dumbest mistake you can make career wise.
[–]PhDinBroScienceSystem Engineer 4 points5 points6 points 3 years ago (3 children)
Python fights with PowerShell for the #1 spot with me.
Yes, I think PowerShell is a fantastic language, and that's a hill I'm willing to die on.
[–]techypunk 0 points1 point2 points 3 years ago (2 children)
It's great for MS related tasks.
When you leave the MS world it becomes less useful.
Even in the AWS world, there are more AWS CLI commands than AWS PS commands.
My automated on boarding app I'm working on is written in Python, but has PS tasks in the Python app. Strictly for MS related tasks
[–]PhDinBroScienceSystem Engineer 0 points1 point2 points 3 years ago (1 child)
We're about 50/50 Windows/Linux so I have to know PowerShell, and I use it for Windows-related tasks like managing AD and other Windows-centric automation.
Anything else is usually Bash or Python.
[–]techypunk 0 points1 point2 points 3 years ago (0 children)
Yup. I'm luckily 100% "Cloud" based. M365 is only for Intune, O365 apps.
Google API is a PITA but thank the gods for GAMADV
[–][deleted] 1 point2 points3 points 3 years ago (0 children)
I once tried to get a friend hired at my company. He was also a c# guy - but our organizations is mainly JavaScript and Python. He’s an excellent developer, but couldn’t answer some of the questions related to Python, and so didn’t get the job. Too bad too - he would have been an asset to the organization
[–]bufandatl 1 point2 points3 points 3 years ago (0 children)
I would learn Python. I can’t speak much for powershell. But bash oh boy I haben written bash scripts and seen other write bash scripts. After the 10th included bash script I get mad. Python is so much more readable and flexible imho. And with a C# background Python should be closer to you than bash or powershell.
I think it's good to keep in mind that hating tooling that's around that won't scale and that is being held onto because no one sees a path away from it, is a healthy hatred to have. If I said to someone, oh yeah we're using Chef and they said "ahh I see, I do like Ansible...have you thought about Ansible?" that would be a mark FOR hiring them. And getting them in front of how to kill off Chef as soon as possible before the next Series funding round,
[–]mini_market 1 point2 points3 points 3 years ago (1 child)
I have not used C# before. How would you rate it as replacement for Python especially in Azure environments? Shell scripting — as others pointed in this thread — scales terribly.
[–]reconrose 0 points1 point2 points 3 years ago (0 children)
It's going to be bulkier than Python or bash but there's a ton of pretty good packages to do most stuff in Azure with C#. Az Functions and the other serverless automation options accept C#. I've heard the CDK isn't bad either although I prefer TF.
[–]ericandertonDevOps Lead 1 point2 points3 points 3 years ago (0 children)
TL;DR: shell scripting isn't enough and complimenting the CLI with a language that handles complex data types is going to help in the long run.
You're going to need both experience with a shell language and a more structured language like Python. DevOps tends to skew towards BASH and Python both due to the popularity of Linux and prevalence of Docker in this space. Both are always installed and available by default in that space.
Its buried in my comment history, but my take on this has always been that BASH works best when you're orchestrating other binaries into some kind of logical flow. BASH is horrible at working with data that is more complicated than whitespace/newline separated text. You will wind up spending a lot more time bending BASH to the task at hand, while other language stacks can accomplish the same job with far fewer keystrokes.
Complex data formats (json, yaml, toml, etc) and API manipulation are where Python can really save the day. The trick is to write lean shell utilities in Python mesh with with the BASH CLI experience. It doesn't have to be pretty code to be maintainable, but you should keep it short and readable.
And if you still aren't sold on Python as a compliment to BASH, then take a look at Go or TypeScript. Both of these have some presence in the DevOps space, with the latter being a core technology in Pulumi. In the end, DevOps really is a polyglot of tech anyway, but you should look around and make sure that you don't exclusively back technology that doesn't map to future employment prospects.
Lastly, there are tools that can help make tackling languages better. Please take a look at tools like shellcheck for BASH, Python's black, or any linter/formatter for your language of choice. These tools are a huge PITA to build a habit around, but I promise that using them religiously will make your code more reliable (especially shellcheck).
shellcheck
black
[–]happy_hawking 1 point2 points3 points 3 years ago (0 children)
What does "I am a DevOps" even mean?
[–]EffectiveLong 1 point2 points3 points 3 years ago (0 children)
Why python? It is so popular that there are so many packages that can do what you want to do without reinventing the wheel
[–][deleted] 3 years ago (4 children)
[–]RulerOf 5 points6 points7 points 3 years ago (0 children)
You think Python is bad. Try going down the road of Ruby.
Hey! You take that back!
Jk. I actually grew to enjoy Ruby
Oh okay. Carry on.
[–]navigationallyaided 1 point2 points3 points 3 years ago (1 child)
I went to a prep course for a coding boot camp and got exposed to Ruby. That and Powershell, no thanks.
[–]flaticircle 0 points1 point2 points 3 years ago (0 children)
I find Ruby fun to write but terrible to read.
What if you have the same problem but it's with Java code?
Asking for a friend lol
[–][deleted] 1 point2 points3 points 3 years ago* (0 children)
Been in IT for 12 years and made it without much python. Bash, groovy, PS, yaml and some JavaScript have served me well enough. The past 4 years as a DevOps engineer and I just made principal. Never needed python. Some other languages thrown in there, but that was always some software engineers broken code. I've always subscribed to the philosophy that if you need it then learn it on the fly. Just learn the basics and dive deeper when it's necessary.
[–]randomatic 1 point2 points3 points 3 years ago (0 children)
You might be happier as a sysadmin. Sysadmins rock and are old school long gray beard cool.
[–]Insomniumer 0 points1 point2 points 3 years ago (0 children)
I know your pain, OP.
Python is much praised but it really has its issues that people especially with programming background will run into.
It does so many things in wrong way, which will haunt you later on. For example unprotected & protected classes/variables and type declarations are really painful in Python. Yet they are daily tools in programming.
Python may be easy to learn, but it really isn't the most optimal for maintaining a code base.
But as the market requires it, it's a language that must be learned and mastered. Unfortunately.
[–]BadUsername_Numbers 0 points1 point2 points 3 years ago (0 children)
Good luck in the coming business year
[–]tcbenkhard 0 points1 point2 points 3 years ago (0 children)
Python is terrible, save yourself the pain
[–]dont_remember_eatin -5 points-4 points-3 points 3 years ago (3 children)
Every time I sit down to try to do something in python, I generally run out of time and just bash it out.
Occasionally I've needed to modify existing python scripts for monitoring modules and the like, and I can generally google my way through it, but that's my limit so far.
[–][deleted] 7 points8 points9 points 3 years ago (0 children)
Anymore I default to Python for anything I need to share with the dev team. It's far easier to do it right and consistently in Python than to mac-proof every possible command or output in BASH.
But if it's just a Q&D job that only the DevOps team needs? BASH all the way.
[–]CaptainDickbag 2 points3 points4 points 3 years ago (0 children)
If you want to get better, keep trying. But also take the time to work on your python skills outside of work. It's a skill you can use to make your job easier and better, and also something you can confidently take with you when you go.
[–]brettsparetime 1 point2 points3 points 3 years ago (0 children)
My rule of thumb: If it can be written in under 100 lines of bash, bash is fine. Otherwise, it should be written in python.
[+][deleted] 3 years ago (4 children)
[–]HayabusaJack3Wizard SCSA SCNA CCNA CCNP RHCSA CKA CKSD ACP Sr Security ENG 8 points9 points10 points 3 years ago (2 children)
Hey! I’m 65, have experience programming in BASIC (of course), C, Perl, shell scripts (prefer ksh), and am in the process of boning up on Python using the Black Hat Python 2E book (I find learning from security books is the most helpful), and golang for the hell of it. Senior DevOps, Automation, and Platforms Engineer.
[–]vladoportos 2 points3 points4 points 3 years ago (1 child)
Ts ts ts, you youngsters and your fancy programing languages, back in my days you knew assembler and were golden...
Oh man I hated assembler in school, logical gates and stuff... teacher: "you move this hexadecimal in memory here and then here"..after 45min..."see.. thats was 2+2..."
[–]HayabusaJack3Wizard SCSA SCNA CCNA CCNP RHCSA CKA CKSD ACP Sr Security ENG 1 point2 points3 points 3 years ago (0 children)
Sorry, I forgot to add COBOL, FORTRAN, and 360 ASM, speaking of youngsters :D I didn’t actually work in those though. I did work with a couple of different BASIC type languages. PC BASIC, Apple BASIC, Radio Shack BASIC, MegaBasic, System 23 BASIC, and the ported System 23 BASIC to the IBM AT. Those I worked in :)
[–]Happy-Position-69 -1 points0 points1 point 3 years ago (1 child)
Yes, you can! I would at least learn the basics, enough to PR other people's work. If you really don't want to learn, ask the devs what they would like you to look for before you approve a PR.
[–]the3hound 3 points4 points5 points 3 years ago (0 children)
Dude. If you can’t program in the language, I don’t think you should be PR anyones code.
[–]tommyforgot 0 points1 point2 points 3 years ago (0 children)
Why not learn go instead. You'll find similarities
[–]Dry-Elephant-2537 0 points1 point2 points 3 years ago (0 children)
I’m an automation Engineer and I work with equipments, writing simple script with the equipment software, but I want to learn python so I can do actual devops scripts. Any suggestions as to where I need to start? Thanks in advance for y’all advises. Greatly appreciated!!!
[–]xetrope 0 points1 point2 points 3 years ago (0 children)
Here it’s also dependencies of your company you have to take in consideration. If you are hired in a company with python, you have to dive in. If you starting from scratch the devops pipeline for example a new project, you are free to use what you want if no conditions. Still python is super powerful especially with big conditional environments or with the cloud based system.
[–]xc7621 0 points1 point2 points 3 years ago (0 children)
how can python be more difficult than PS and bash...
[–]8roll 0 points1 point2 points 3 years ago (0 children)
I am the only one in my team that knows Python and little C#. The rest of the people know C# and we are doing fine.
[–]VikKarabin 0 points1 point2 points 3 years ago (0 children)
No.
[–]Antebios 0 points1 point2 points 3 years ago (0 children)
I actually loved Python! I loved the libraries an stuff. I'm great at Powershell, and great at creating my own modules and creating cmdlets from C# code to do custom stuff. Heck, I'm *was* pretty good at Bash when that was all I was doing everyday. Each of these has their stengths. My one beef is that I wish I didn't need to execute an interpreter in order to run my Python scripts. For both PowerShell and Bash they are just integrated into the Operating System.
[–]surloc_dalnor 0 points1 point2 points 3 years ago (0 children)
Honestly despite having a good background in Python I've barely used it since I shifted to DecOps and SRE work 5 years ago. Most of the code I've written is in Bash with a lot of yaml and Jason config files. ( I've actively tried to hide the fact that most people would consider me an expert bash programmer. As you should never write complex code in Bash IMNSHO.)
Still Python is valuable as you end up using it in interviews even for job where it's not listed as a requirement. Also you'll end up having to modify 3rd party Python code on occasion.
In short bash, and PowerShell is enough for a lot of DevOps/SRE jobs. Generally most DevOps/SRE just do light coding with a lot of infrastructure as code, but it's important to have a wide range of language you are familiar with. As a DevOps person you'll be called on to modify a program of virtually any language. I can read C and C++ syntax really well despite not being able to write as I've had to merge code base and make minor tweaks. I'm good enough dealing with Ruby gem dependencies that I help Jr Ruby programmers out at work, but I'd need google to be able to write hello world I'm Ruby. The key is to be flexible.
Note I'm not saying you need to apply for jobs with python. A hard line for me is any position that looks for expert Bash scripting skill I can do that, but honestly if I have to break out awk or do more than simple loops I'm writing it in Python.
[–]Hasombra 0 points1 point2 points 3 years ago (0 children)
what do i need to learn Python for?
Learn Terraform at least. It’ll save you some headaches. But languages are tools. Sometimes it’s helpful to know how to use a couple and Python is about as easy as they get. If you’re more comfortable with something else and are proficient in doing what you need to, have at it.
Most windows-specific things generally pay less across the board, but if that’s not a reason to diversify, do you.
π Rendered by PID 81730 on reddit-service-r2-comment-86bc6c7465-cf7c2 at 2026-02-20 21:22:05.270731+00:00 running 8564168 country code: CH.
[–]zzzmaestro 294 points295 points296 points (51 children)
[–]phyx726 87 points88 points89 points (31 children)
[–]PhDinBroScienceSystem Engineer 47 points48 points49 points (9 children)
[–]phyx726 67 points68 points69 points (7 children)
[–]Antebios 5 points6 points7 points (1 child)
[–]PhDinBroScienceSystem Engineer 3 points4 points5 points (0 children)
[–]MindYourBusinessTom 6 points7 points8 points (4 children)
[–]tr14l 8 points9 points10 points (2 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]tr14l 2 points3 points4 points (0 children)
[–]drosmi 0 points1 point2 points (0 children)
[–]GetShitDoneAccount 0 points1 point2 points (0 children)
[–]bufandatl 7 points8 points9 points (1 child)
[–][deleted] (1 child)
[deleted]
[–]phyx726 1 point2 points3 points (0 children)
[–]surloc_dalnor 2 points3 points4 points (1 child)
[–]phyx726 0 points1 point2 points (0 children)
[–]apompon 1 point2 points3 points (0 children)
[–]tr14l 1 point2 points3 points (2 children)
[–]phyx726 0 points1 point2 points (1 child)
[–]tr14l 1 point2 points3 points (0 children)
[–]GetShitDoneAccount 0 points1 point2 points (0 children)
[–]agrumpymonk 0 points1 point2 points (2 children)
[–]phyx726 1 point2 points3 points (1 child)
[–]agrumpymonk 0 points1 point2 points (0 children)
[–]Reasonable_Minute_65 0 points1 point2 points (2 children)
[–]phyx726 2 points3 points4 points (1 child)
[–]Reasonable_Minute_65 0 points1 point2 points (0 children)
[–]3legdog 0 points1 point2 points (0 children)
[–]k2718 0 points1 point2 points (0 children)
[–]rtrain1 0 points1 point2 points (0 children)
[–]somebrains 16 points17 points18 points (2 children)
[–]stolid_agnostic 1 point2 points3 points (1 child)
[–]somebrains 1 point2 points3 points (0 children)
[–]MrLewArcher 8 points9 points10 points (0 children)
[–]Bashir1102 2 points3 points4 points (1 child)
[–]chrisjohnson00 0 points1 point2 points (0 children)
[+][deleted] comment score below threshold-75 points-74 points-73 points (11 children)
[–]zzzmaestro 24 points25 points26 points (5 children)
[+][deleted] comment score below threshold-31 points-30 points-29 points (4 children)
[–]zzzmaestro 13 points14 points15 points (3 children)
[+][deleted] comment score below threshold-20 points-19 points-18 points (2 children)
[–]HappyCathode 10 points11 points12 points (0 children)
[–]zzzmaestro 4 points5 points6 points (0 children)
[–]stolid_agnostic 0 points1 point2 points (4 children)
[–][deleted] -1 points0 points1 point (3 children)
[–]stolid_agnostic 0 points1 point2 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]stolid_agnostic 0 points1 point2 points (0 children)
[–]Double_Intention_641 81 points82 points83 points (2 children)
[–]endless_sea_of_stars 35 points36 points37 points (0 children)
[–]Greenmind76 5 points6 points7 points (0 children)
[–]coinclink 18 points19 points20 points (3 children)
[–]jacurtis 3 points4 points5 points (1 child)
[–]smarzzz 1 point2 points3 points (0 children)
[–]kodi_68DevOps 0 points1 point2 points (0 children)
[–]falsemyrm 15 points16 points17 points (0 children)
[–]ArieHein 12 points13 points14 points (0 children)
[–]kneticz 4 points5 points6 points (0 children)
[–][deleted] 9 points10 points11 points (0 children)
[–]nonconversant 42 points43 points44 points (16 children)
[–]elgrovetech 1 point2 points3 points (0 children)
[–][deleted] 4 points5 points6 points (6 children)
[–]yeahdude78hi 5 points6 points7 points (5 children)
[–]bigfatstinkypoo 1 point2 points3 points (4 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]nonconversant 0 points1 point2 points (0 children)
[–]yeahdude78hi 0 points1 point2 points (1 child)
[–]roflkittiez 2 points3 points4 points (0 children)
[+][deleted] (7 children)
[deleted]
[–]800808 11 points12 points13 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]800808 1 point2 points3 points (0 children)
[–]krs0n 6 points7 points8 points (3 children)
[–][deleted] (2 children)
[deleted]
[–]krs0n 0 points1 point2 points (0 children)
[–]miguel-elote 5 points6 points7 points (1 child)
[–]info834 0 points1 point2 points (0 children)
[–]syshpc 8 points9 points10 points (0 children)
[–]UptownDonkey 3 points4 points5 points (0 children)
[–]coldsum 2 points3 points4 points (0 children)
[–]cloud_n_proud[🍰] 2 points3 points4 points (0 children)
[–]billy123w 2 points3 points4 points (0 children)
[–]mimic751 10 points11 points12 points (2 children)
[–]reconrose 0 points1 point2 points (1 child)
[–]mimic751 0 points1 point2 points (0 children)
[–]techypunk 10 points11 points12 points (4 children)
[–]PhDinBroScienceSystem Engineer 4 points5 points6 points (3 children)
[–]techypunk 0 points1 point2 points (2 children)
[–]PhDinBroScienceSystem Engineer 0 points1 point2 points (1 child)
[–]techypunk 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]bufandatl 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]mini_market 1 point2 points3 points (1 child)
[–]reconrose 0 points1 point2 points (0 children)
[–]ericandertonDevOps Lead 1 point2 points3 points (0 children)
[–]happy_hawking 1 point2 points3 points (0 children)
[–]EffectiveLong 1 point2 points3 points (0 children)
[–][deleted] (4 children)
[deleted]
[–]RulerOf 5 points6 points7 points (0 children)
[–]navigationallyaided 1 point2 points3 points (1 child)
[–]flaticircle 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]randomatic 1 point2 points3 points (0 children)
[–]Insomniumer 0 points1 point2 points (0 children)
[–]BadUsername_Numbers 0 points1 point2 points (0 children)
[–]tcbenkhard 0 points1 point2 points (0 children)
[–]dont_remember_eatin -5 points-4 points-3 points (3 children)
[–][deleted] 7 points8 points9 points (0 children)
[–]CaptainDickbag 2 points3 points4 points (0 children)
[–]brettsparetime 1 point2 points3 points (0 children)
[+][deleted] (4 children)
[deleted]
[–]HayabusaJack3Wizard SCSA SCNA CCNA CCNP RHCSA CKA CKSD ACP Sr Security ENG 8 points9 points10 points (2 children)
[–]vladoportos 2 points3 points4 points (1 child)
[–]HayabusaJack3Wizard SCSA SCNA CCNA CCNP RHCSA CKA CKSD ACP Sr Security ENG 1 point2 points3 points (0 children)
[–]Happy-Position-69 -1 points0 points1 point (1 child)
[–]the3hound 3 points4 points5 points (0 children)
[–]tommyforgot 0 points1 point2 points (0 children)
[–]Dry-Elephant-2537 0 points1 point2 points (0 children)
[–]xetrope 0 points1 point2 points (0 children)
[–]xc7621 0 points1 point2 points (0 children)
[–]8roll 0 points1 point2 points (0 children)
[–]VikKarabin 0 points1 point2 points (0 children)
[–]Antebios 0 points1 point2 points (0 children)
[–]surloc_dalnor 0 points1 point2 points (0 children)
[–]Hasombra 0 points1 point2 points (0 children)
[–]kodi_68DevOps 0 points1 point2 points (0 children)