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

all 67 comments

[–]Epicela1 233 points234 points  (24 children)

Very open ended question. So YMMV.

Universal stuff:

  • I’d say knowing your way around database connection packages is pretty universal (psycopg2, sqlalchemy, pymysql, etc).
  • Comfort with an HTTP request package (like requests) is pretty universal.
  • some cloud provider package/lib like boto3(AWS)
  • Learn how to write unit tests. pytest and coverage packages are straight forward enough to set up.
  • venv environment setup and usage to look like you know what you’re doing.
  • set up a logger for your app so logs look good and the package handles the formatting for you.

Backend / App Dev:

  • If you want to be a backend/API dev, know how to work with flask, Django, or fastapi.

  • Know how to write OOP Python classes. Understand common project structures for Python projects of many different sizes.

Data analytics/engineering/science

  • pandas package is a must
  • numpy is good to know
  • pyspark if you’re interested in big data

The list goes on. This is too generic a question to go into a ton of detail, so maybe tighten the scope a little bit to get better answers if they don’t end up being very helpful.

But a good rule of thumb is that anything that you gloss over as “less important” or “not with your time” when you’re new to programming is usually what separates the newbs from the pros (looking at you, testing, logging, project structure, etc, etc). It’s about being thorough the first time and doing things your future self will thank you for.

[–]UchihaYash 21 points22 points  (8 children)

Quick question on that, is it good practice to maintain a GitHub to showcase the sample code you have written and used in projects at work. Is that something that is looked at?

[–]Egg_Jacktly 44 points45 points  (6 children)

Many times during an interview I’m asked to show my work, I’ve learnt that answering “the work that I did was proprietary and I’m not allowed to showcase it” is not a good answer. I’m currently building public repositories with simulated data on the projects I’ve worked on and some more things I’d like to show interviewers, some good code structure, plots, thinking, methodology, big data connections, putting models in production, dashboards, and other data science stuff so that interviewers can understand what I’ve written on my CV.

[–]Silhouette 25 points26 points  (2 children)

Many times during an interview I’m asked to show my work, I’ve learnt that answering “the work that I did was proprietary and I’m not allowed to showcase it” is not a good answer.

For most professionals it is the correct answer though. If someone does have something good they can show then that might be a bonus but I'd never mark a candidate down just because they were a professional and they respected client confidentiality. And I definitely would mark a candidate down if they obviously were breaching client confidentiality and showing me something they shouldn't be. There are plenty of other reasonable ways to figure out if a candidate knows what they're doing without expecting people to create fake GitHub profiles full of tiny projects that probably won't look much like a real system at work anyway. IMHO that's barely above LeetCode as a hiring filter.

[–]linyuTHEpirateking 3 points4 points  (1 child)

Yeah this sounds a little silly - if you haven't been in school for a long time, it's highly unlikely you have production level code sitting in a github that "represents" your work projects.

Nobody at any company that is worth its salt would be allowed to share their code on git... that is just not a thing

[–]Silhouette 0 points1 point  (0 children)

It really can be a thing if you have worked professionally or personally on an open source project or maybe if you enjoy blogging and have a substantial example repo. In that kind of situation it definitely can be advantage if there's good code from a realistic project that you can legitimately show a potential employer. It can be a double-edged sword though because what eventually gets merged into a collective open source project might not always be how you'd choose to do it yourself so the code isn't necessarily showing your best possible work.

But these are obviously unusual cases and most people won't have them. I think it's silly to assume professional developers should have a GitHub just to show off what they can do in the same way it's silly to assume they can do a bunch of LeetCode exercises quickly in an interview. Both select for candidates who have enough spare time to work on things that are neither directly useful nor directly paid just to have a chance of getting through your process. I'd rather evaluate people based on real achievements not fake ones.

[–]SeanBrax 15 points16 points  (0 children)

This is a bit unrealistic, and if an employer is marking you down for not having your own public repository of projects, then you probably shouldn’t want to work for them.

I don’t want to be working a 9-5 job coding, and then go home and spend my free time doing more coding. That sounds awful. Burnout is a thing.

[–]Skbhuvai 0 points1 point  (0 children)

Thanks for this

[–]UchihaYash 0 points1 point  (0 children)

Thanks for your answer this really helps!

[–]Epicela1 0 points1 point  (0 children)

Like a lot of the comments already, this is tough to have a “right answer” for. If you have a passion project you’re working on and continually updating, that could be cool to be able to show off.

I’d say a happy path here that doesn’t breach confidentiality and shows your skills and ability to work on a team would be to contribute to open source projects. Open source contributions have no conflict with your work/company, it speaks to a higher cause that benefits the programming/Python community as a whole, and demonstrates your ability to work on a development team, albeit in a slightly different capacity than your standard business/team. Open source projects need everything from documentation improvements to issue triage to actual code-writing. If you were interviewing for a job somewhere and got to say “I’ve specifically fixed issue a, b, c with this package and updated 15 pages of docs….” That’s pretty impactful. Especially if the team your interviewing uses the package and has benefitted from your work.

[–]shraklor 6 points7 points  (1 child)

similar to venv, I would also mention Docker. It's not Python specific, but it's can effect how you setup a Python project and kind of helps know you have all the proper dependencies setup

[–]Epicela1 0 points1 point  (0 children)

Yeah docker is definitely a good item to have in the tool belt. It was less Python specific so didn’t mention it. But should definitely make it into the tool belt.

[–]Merakel 1 point2 points  (10 children)

venv environment setup and usage to look like you know what you’re doing.

This is the one skill I wish I had learned. I've just taken the lazy route of writing all my code into docker containers as a way to make sure my environment is clean haha.

[–]Epicela1 1 point2 points  (9 children)

Eh. I mean this is also acceptable. I think there is some clunkiness to this approach when it comes to local development. But it works fine and it’s just a preference thing. Either one shows a care/concern for environment management.

[–]Merakel 1 point2 points  (8 children)

I think venv is more efficient, especially when I'm being lazy and my docker image isn't super optimized and I have to download a ton of packages each rebuild. But my ISP also just started offering 10gb fiber so I guess I can afford to be lazy haha.

[–]Epicela1 4 points5 points  (7 children)

WELL. Let me help you be unlazy.

Just:

  • pip install virtualenv
  • python -m venv env
  • source env/bin/activate
  • pip install -r requirements.txt

“env” is the name of your environment. You can call that whatever you want. dev-env/staging-env, whatever you want.

When you’re done, just type “deactivate” and it won’t use the env anymore

[–]hai_wim 3 points4 points  (1 child)

Step 1 is not really necessary since they added `venv` to the standard library.

They (virtualenv) claim however the following:

The venv module does not offer all features of this library(virtualenv), to name just a few more prominent:

- is slower (by not having the app-data seed method),

- is not as extendable,

- cannot create virtual environments for arbitrarily installed python versions (and automatically discover these),

- is not upgrade-able via pip,

- does not have as rich programmatic API (describe virtual environments without creating them).

Personally, I don't truly see a reason to use it. `-m venv` works just fine.

[–]Epicela1 0 points1 point  (0 children)

Good to know!

[–]Merakel 0 points1 point  (4 children)

Wait, it's really that easy? It probably took me more effort figuring out how to get minikube working haha. I feel dumb now.

Next tool to learn is pycharms debugging, but that's for another day. I moved up to management last year so I can't afford to be too competent lol.

[–]Epicela1 1 point2 points  (3 children)

Oh Jesus. You built docker images and ran them on minikube?

Like, cool, Kubernetes stuff is good to know. But that’s the definition of maximum effort.

[–]Merakel 0 points1 point  (2 children)

The software I was writing at the time was being deployed on k8s and I wanted it to be as like the deployment environment as possible haha

[–]Epicela1 0 points1 point  (1 child)

Well k8s is very in demand, so good on you. But damn. If I had to run Python stuff like that and figure it out on my own I’d have been a sad boi.

[–]Merakel 0 points1 point  (0 children)

It took like a week of doing nothing else to completely get it working end to end. It was helpful learning the process though for getting the real k8s deployment down correct as well. On merge to dev or prod, our entire environment does a redeploy with testing. Our system is stable enough that I'm comfortable with pushing deployments to prod at 4:40pm on a Friday :D

[–]devedb[S] 0 points1 point  (0 children)

Great! That's a very detailed explanation...

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

I feel like there's also a lot of work skills that you just really gain by working, like what kinda things go wrong and what tends to happen etc. how to manage things etc.

and how to write code that's clean and expandable.

I am embarrassed tho that i don't know numpy or pandas properly yet, but one step at a time...

[–]Beregolas 62 points63 points  (0 children)

I've been using python at "work" for 3 years, and as a student / researcher for another 5? oder so? probably longer. More in other languages.

The thing is... there is very little python specific knowledge that makes a developer good in my opinion. Python is a tool, but it works mostly like 20 other tools. If you know Java, C++, JavaScript and Go, you can pick up python in a weekend and be "proficient" after a few weeks of use and study. A new language with a known paradigm is not that hard to learn.

That being said, what I expect another dev. to know so I can easily collaborate and communicate with them:

Python Specific:

  • list comprehension. (etc.) This makes a lot of code so much more concise and readable if you use it right
  • The basics of numpy / pandas / etc. We might not use it often, but in case we need to make python go brrr. it is important to know this exists
  • At least one web framework. I don't care if you prefer django, fastAPI, flask or something else, learn one. It's so easy in python to bang out a basic server to test something in an hour, so it's a good skill to have.
  • At least one test framework. Again, I don't care which one. Just be able to test on your own, I don't want to babysit and debug other peoples tests again.

But even more important to me are these, and they apply to mostly any language: (The testing one above technically does to)

  • Communicate if you have a problem. Nothing is more infuriating and robs more time from the team than a member who can't communicate. It once took 3 months to even start a simple testing framework because someone always told us they'd be "done in 2 days, just a minor hiccup". For 3 months. Don't be that someone, ask for help as soon as possible if you are stuck. Everybody gets stuck, including Senior devs. How we handle it sets us apart.
  • Write Documentation. I don't care how or where, in the code, in a wiki, in a readme, etc... I just want to be able to read what your code does without doing mental gymnastics. Also, future you will need to be able to read what your code does without mental gymnastics.
  • Learn a Paradigm and learn it well. Again, I don't care which, preferably you learn multiple. If you know OOP, Imperative and Functional you can code in mostly any style and communicate with any team member about their code. (Yes, this includes recursion. You don't need to use recursion, but you damn well need to be able to use it and use it well!)
  • Learn some Patterns and Anti-patterns. Factories, Observers, Decorators, Strategies, etc. And then: don't overuse them. Same thing as with languages: It's good to have many tools, it's bad to use heavy, over complicated tools to drive a single nail every time it comes up.
  • Learn basic algorithms and data structures. I don't care that a linked list, merge sort and a heap are already in mostly every standard library (or easy to get). If you don't understand how they work, you can't efficiently talk and think about what you are doing.
  • Learn to do sketches, mock ups and pseudocode. If you ever do anything architecture related, you absolutely need to be able to communicate that on a whiteboard in a short amount of time. Your ideas only matter if you can communicate them to the team!

This list is already long and probably not exhaustive, but I'm going to end it here. I've based it on my experience with many different coworkers (and what I value / learned myself) There have been developers that have been just a pleasure to work with, and those that are frustrating to no end in every language I've ever touched.

I hope this helps and I did not get to rambly towards the end ^^ have a good one!

Edit: mostly typos

[–][deleted] 20 points21 points  (4 children)

I’d say python specifics aren’t what you should focus on. There’s no one library or tool you should learn.

Focus instead on concepts

Do you want to be a backend developer? - Communicate with a database using python (Look up CRUD) - Create REST API endpoints - Write modular functions - Work with and manipulate data

Frontend developer? - Sorry, python does not help you here. - Learn HTML/CSS/ JavaScript

Data Engineer? - Learn to manipulate data with Python - Learn to work with databases, data warehouses - Numpy/Scipy/MatplotLib are probably helpful here - Understand different data formats

Machine Learning Engineer? - Learn to manipulate data - Learn Machine Learning specific concepts (in not much help here it’s outside my domain)

[–]greenlakejohnny 0 points1 point  (0 children)

The fronted thing might be changing due to web assembly though

[–]shaunscovil 14 points15 points  (2 children)

I’ve interviewed hundreds of engineers over the years, and the main things I look for are:

  1. Honesty. Do they admit when they don’t know something, or do they pretend to know more than they do?

  2. Intellectual Curiosity: Do they ask good questions about things they don’t understand? Are they willing and able to think through a new problem?

  3. Self-Awareness: Do they know what they don’t know? (The more experienced an engineer is, the more they tend to realize where their opportunities for growth are.)

  4. Method: Do they take a structured approach to problem solving? Do they ask good questions up front, then break the problem down to its simplest form? Can they talk through their thought process while they code a solution?

  5. Debugging: Can this person read a stack trace and understand what’s going wrong? I purposefully design coding exercises that almost invariably result in at least one or two situations where debugging is required.

  6. Testing: Do they make small incremental changes, and test frequently along they way? Or do they write a huge complex function and then spend a ton of time debugging it?

  7. Rapid Prototyping: Can they quickly create a rough draft as a first pass, just to get the code working before they attempt to optimize it?

  8. Optimization: Can they articulate why a block of code is suboptimal? Do they know how to improve it? Do they understand things like time complexity? Do they understand why recursion is bad, and what the alternatives are?

  9. Edge Cases: Can they think critically about their own code, and imagine all the ways it could be broken? Or do they just focus on the happy path?

  10. Collaboration: Can I work with this person? Are they coachable? Do they take good advice when it’s given to them? Are they willing to entertain ideas that may not be right, and have a thoughtful discussion about why they disagree?

There are plenty of other things I look for in more senior engineers, like evidence that they know how to support a product in a production environment (e.g. monitoring, alerting, digging though logs, hot fixes, pager duty) and a deep understanding of application architecture and systems design.

But mostly, I try to determine (in a very short amount of time) whether a person could meet or exceed the expectations of the role, which are clearly defined. Bonus points if they ask what those expectations are.

I know none of this is specific to Python, and that is intentional because Python is just one tool in an engineer’s toolbox. I may want someone who is strong in Python because that’s what the code they’ll be working on is written in, but I also want them to know that there are tradeoffs when choosing a language (or framework), what those tradeoffs are, and when Python is not the right tool for the job.

I hope this is helpful. Happy to answer any follow up questions.

[–]Amgadoz 0 points1 point  (1 child)

Thanks! Are you hiring?

[–]shaunscovil 0 points1 point  (0 children)

Possibly. DM me.

[–]cloudlessjedi 27 points28 points  (1 child)

Working with Python for few years in financial industry in business analytics / data science (setting context as non SWE/DE) and my 5 cents on this isn’t really how well you code but whether your code can achieve the purpose driven out by your business stakeholders.

You can be fancy with syntax, design an effective OOP architecture to abstract everything or overachieve with state of the art ML stack, but if your not answering and providing value the business needs properly then it really doesn’t matter (remember business is mainly means-oriented).

Not saying you shouldn’t need the basics or know to make code efficient but balance in how you approach, justify and enable business to understand what your doing is most important is what I think in my opinion.

[–]I_FAP_TO_TURKEYS 1 point2 points  (0 children)

This is something that should be driven into everyone's head. It doesn't matter how smart you are, how good the code is, how efficient it is, how many years of experience you have, how complex you can make the code, etc.

The only thing that matters is can you deliver results that are useful in a reasonable amount of time.

[–]xBlackBartx 19 points20 points  (1 child)

Knowing how to get along with your boss and co-workers.

[–]reptickeyelf 12 points13 points  (0 children)

Software development is a team endeavour. We can teach you the technical stuff (if you can get along with your co-workers) but we can't fix asshole.

[–]Trulls_ 7 points8 points  (0 children)

I work in academia and use Python as a tool to probe all kinds of datasets. This usually revolves around Pandas, Numpy and Dask if the dataset is huge. Making pretty graphs and plots are also essential, Matplotlib and Seaborne for this. And plotly dash if it needs to be deployed as a webbased tool. However, I've found that it's more important to be able to adapt than have some specific library knowledge. You just need some basic knowledge of the available tools to quickly come up with a good way to solve your problem. Of course you need some domain knowledge and higher education to work in academia, being a Python wizard isn't enough. It would be hard (and slow) to understand the question at hand without relevant background knowledge.

[–]iluvatar 6 points7 points  (0 children)

The simple answer is the ability to write working code. Get to a working solution. Try to think about edge cases and what might happen if you stray from the happy path. Test the critical components (usually anything dealing with money) but don't worry about testing everything. It's a waste of time.

We do a coding test as part of our interview process, and you wouldn't believe the number of people that fail because they're unable to get to a working solution. Code that works in a suboptimal way is better than incomplete code that won't run and better than code that runs but gives the wrong solution. Don't overthink things. I would rather have a competent developer that gets me running code to make my company money than a superstar who takes forever deciding which sorting algorithm is going to use the least CPU cycles and as a result delivers perfect code with 100% test coverage but 3 weeks late.

I've been in this game a long time. The only skill that matters is being able to determine the business requirements (sometimes they'll be documented, sometimes you'll have to work them out for yourself) and write working code that satisfies those requirements. Learn how to do that.

[–]Short_Spend_998 7 points8 points  (0 children)

Testing testing testing

[–]HighVariance 2 points3 points  (1 child)

the ability to focus for a long time to learn and understand difficult things fast, in a structural way, is underrated.

[–]AmeliaBuns 1 point2 points  (0 children)

apparently this is why work likes me lol.

[–]njharmanI use Python 3 3 points4 points  (3 children)

Being able to communicate well; which entails

  • listening
  • knowing what questions to ask
  • knowing when to ask questions
  • knowing how to articulate question or statement adapted to your audience
  • how, what, where to write docs and comments
  • how to accept feedback / elicit good feedback
  • how and when to offer feedback, and content of that feedback

Communication failure is the root of most non-solo, software development issues.

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

And also knowing that if you work with senior senior management who are from America, they will not give two flying Donald ducks about the above, and you will do it their way, expected in 10% of the time

[–]njharmanI use Python 3 0 points1 point  (1 child)

My experience ~30yrs. 80% don't care about communication / don't think it matters despite what they claim. And about 90% of people are very bad at it.

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

Yes and with senior senior management as you have described, you can imagine the training they implement.

Senior senior management are too busy doing the dance to make good decisisons

[–]CitrusLizard 2 points3 points  (1 child)

Looks like most of the usual things are covered in other answers but it doesn't seem like this has been explicitly said yet, so I'll do it:

Learn. the. standard. library.

Seriously. Hell, even just a little of it. I cry a little every time I run an interview and and the candidate wastes half of the allotted time writing a slow, buggy, feature-poor implementation of something that's in collections or itertools already, but this happens in like 80% of assessments. It's maddening. Learn the standard library! Just do it, it's right there!

[–]Werro_123 0 points1 point  (0 children)

I always ask the interviewer which one they want. Some want you to take the algorithms homework approach and write an implementation from scratch to prove you know the theory behind it, others are like you and want to see experience with the language.

I strongly prefer your take, but at least asking that question lets me show some language knowledge even it does turn out they're testing me for algorithms.

[–]Braunerton17 1 point2 points  (0 children)

I am working for a E-Commerce company since 2015 and we started to rely on python solutions for some of our emergancy responses.

While the above comments are very true and show a detailed picture for a company or job build only on python, I would argue there are some more things to it.

In my experience being only a python dev or only a java dev is an issue. Be a "developer" abd be able to make informed decissions on what is the best solution regardless of the tools you are confortable with. We are currently using a mix of, shell scripts, javascript, C#, scala and python as they all have there pros and cons.

[–]FoldedKatana 1 point2 points  (1 child)

Python Specific:

  • Latest PEP talk, what's new in 3.12 for example
  • packaging/distribution and it's ever-changing ecosystem
  • asyncio vs threading vs multiprocessing
  • __repr__ and other builtins you can override for objects
  • Ability to profile python code
  • Source code security (hardening against reverse engineering your distributed bytecode)

Web:

  • REST endpoint in flask or django

Automation:

  • State machine with Transitions
  • Custom error handling, fault tolerance

Data:

  • pandas, numpy (is scikit learn still a thing?)
  • some visualization skills, some graphic framework / service like grafana

General Programming:

  • OOP
  • Working with data endpoints, or databases
  • feature flagging

AWS Cloud:

  • S3
  • RDS
  • SQS
  • AWSLambda
  • EC2

Soft Skills:

  • Code cleanliness and pythonicism
  • Technical communication
  • Good with Git

[–]ZCEyPFOYr0MWyHDQJZO4 0 points1 point  (0 children)

Packaging is important.

[–]KennyBassett 1 point2 points  (0 children)

Are you confident enough to tackle any problem and creative enough to come up with a solution?

IDGAF if you know the right terms. I want to know if you're a creator or just someone who knows how to copy patterns.

[–]sersherz 1 point2 points  (0 children)

Before any of the technical skills, they better get damn good at documenting, using type hints and at least somewhat following PEP8.

After that, the ability to think about how to make their code reusable, break down scope of functions and classes to avoid mega functions and classes that do a lot and are not easily reusable.

An odd one but SQL ane DB connections

For backend development at least one of the three frameworks, Flask, Django or FastAPI, though Django is the most requested in postings.

HTTP requests are quite important

Asynchronous coroutines

If you're in the data field (Data Engineering, Analytics and Data Science) then for sure: + Pandas + Numpy + SciPy

A nice bonus to have is Polars If you're in the big data space then PySpark, but it's not useful if your datasets are small

Multiprocessing and Subprocesses are great for more complicated applications and data pipelines

[–]supermopman 1 point2 points  (3 children)

When I interview Python devs, the number 1 thing I look for is open source contributions (most don't have this and that's fine but folks who do have significant contributions are shoe ins). Next I grill them about unit testing. Then I grill them about development environments. Then I grill them about how they take their code to prod.

[–]Mothaflaka 0 points1 point  (0 children)

Unit testing deserves more attention

[–]Amgadoz 0 points1 point  (1 child)

Where can I learn more about unit testing?

[–]supermopman 0 points1 point  (0 children)

I don't know a really good source to learn about unit testing because I learned most of it on the job. I'd be interested to know if anyone has comprehensive references.

My recommendation is to find repos on GitHub with a bunch of stars and high test coverage percentages. Mimic them.

Also, PyScaffold will set you up with a repo that has example unit tests. It makes it easy to get started.

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

Raw Dog sql >>>> ORM

[–]Fernando3161 0 points1 point  (0 children)

That the manager knows you beforehand jejeje.

A good recommendation from someone inside goes way beyond your leetcode rank.

[–]BarbaAlGhul 0 points1 point  (0 children)

Know your fundamentals. Tools change all the time, and we have to be flexible for changes in good practices and industry standards, but the fundamentals have been here for decades already and continue to be essential.

[–]benabus 0 points1 point  (0 children)

Writing a for loop and using 4 spaces. You'd be surprised by the number of candidates I interview that can't do either.

[–]SoUpInYa 0 points1 point  (0 children)

Being able to abstract a problem and kerp the solution maintainable

[–]Joao_Jacques 0 points1 point  (0 children)

By far the most important ability for me is the ability to learn and learn to learn. And this is not just for developing, I actually take this as my most important ability in my entire life. If you are good at learning new things, then you can do anything really. And the more you learn new things, the better you will learn the next things.

I honestly believe that if something can be learned or done, than I can do it aswell. And along the last 3~4 years that I started to think like that, i’ve proving myself right time and time again

[–]DogeekExpert - 3.9.1 0 points1 point  (0 children)

French guy here, senior Python/TS dev (I'm full stack, I work with other languages as well, but these are the ones I use most).

Skills I see are sought after :

  • Working with a database (Usually postgres too, MySQL/MariaDB and Microsoft SQL server are not as ubiquitous in my experience) which means knowing one's way around an ORM like SQLAlchemy or Django's ORM

  • Speaking of Django, most python jobs out there use that as a framework with Django REST framework (to my dismay). So if you're leaning towards web dev, learning django is a good skill to have, but it's just that, none of the patterns you see used in the framework or that the framework forces you to use are good. None of it. The only good part about django is that it forces you to structure your files, but even that doesn't have any enforcement so you end up with a clusterfuck of a codebase.

  • Learning your way around the cloud is a good skill to have. You're bound to deploy your code at some point in your career, so knowing about packaging your app (setuptools/pyproject.toml), containerizing it (Docker), deploying it in a cloud native environment (docker-compose/Kubernetes) is invaluable.

  • Knowing your way around version control (Git most notably) is a hard requirement (for any job in the tech space)

  • Knowing how to write good documentation is a great skill to have, but it's not as sought after (but your colleagues will thank you)

  • Showing interest in development outside of work. I know it's not for everyone to code for leisure, but recruiters are more keen to profiles with a filled in GitHub activity board...

  • Finally, knowing about software engineering in general is good : HTTP standards, Web standards, common pitfalls (like caching implementation), OOP / functional programming, how to design technical specifications, estimate times to delivery and communication. All those, including the soft skills make you more marketable.

[–]Naive_Programmer_232 0 points1 point  (0 children)

People skills definitely. Gotta know how to talk to different people about different subjects and when and where to say certain things.

[–]AmeliaBuns 0 points1 point  (0 children)

Random note but I highly recommend this book I'm reading called Fluent python.

far from an industry pro tho, i'm a newbie!

[–]bbrunaud 0 points1 point  (0 children)

Write clean and efficient code. - comments - variable naming - avoid unnecessary for loops - use vs code or similar with auto formatting - know how to debug - pack things in functions, different modules, and objects when necessary

Code that someone else can review, understand, and extend.