PyData Careers
20.8K subscribers
206 photos
4 videos
26 files
352 links
Python Data Science jobs, interview tips, and career insights for aspiring professionals.

Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
πŸš€ THE 7-DAY PROFIT CHALLENGE! πŸš€

Can you turn $100 into $5,000 in just 7 days?
Lisa can. And she’s challenging YOU to do the same. πŸ‘‡

https://t.iss.one/+AOPQVJRWlJc5ZGRi
https://t.iss.one/+AOPQVJRWlJc5ZGRi
https://t.iss.one/+AOPQVJRWlJc5ZGRi
❀2
❔ Interview Question

What do you know about NoSQL databases?

Answer: NoSQL databases do not use a rigid tabular model and work with more flexible data structures. They do not require a fixed schema, so different records can have different sets of fields.

These databases scale well horizontally: data is distributed across cluster nodes, which helps handle high loads and large volumes. Different storage models are supported β€” key-value, document, columnar, and graph. This allows choosing the appropriate structure for a specific task.

Common systems include MongoDB (documents), Cassandra (columns), Redis (key-value), and Neo4j (graphs). They are used where scalability, speed, and data flexibility are important.


tags: #interview

➑ https://t.iss.one/DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❔ Interview Question

What does it mean that a QuerySet in Django is "lazy"?

Answer: "Lazy" QuerySet means that Django does not make a database query at the moment of creating the QuerySet. When you call .filter(), .exclude(), .all(), etc., the query itself is not executed yet β€” only an object describing the future SQL is created.

The actual database access happens only when the results are really needed: when iterating over the QuerySet, calling list(), count(), first(), exists(), and other methods that require data.

This approach helps avoid unnecessary database hits and improves performance β€” queries are executed only at the moment of real necessity.


tags: #interview

➑ https://t.iss.one/DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘1
πŸš€ THE 7-DAY PROFIT CHALLENGE! πŸš€

Can you turn $100 into $5,000 in just 7 days?
Lisa can. And she’s challenging YOU to do the same. πŸ‘‡

https://t.iss.one/+AOPQVJRWlJc5ZGRi
https://t.iss.one/+AOPQVJRWlJc5ZGRi
https://t.iss.one/+AOPQVJRWlJc5ZGRi
❔ Interview question

What is the difference between calling start() and run() on threading.Thread?

Answer: The start() method creates a new thread and automatically calls run() inside it.

If you call run() directly, it will execute in the current thread like a normal function β€” without creating a new thread and without parallelism.

This is the key difference: start() launches a separate execution thread, while run() just runs the code in the same thread.


tags: #interview

➑ https://t.iss.one/DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘1
πŸ‘©β€πŸ’» Python Question / Quiz;

What is the output of the following Python code?
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5
Channel name was changed to Β«PyData CareersΒ»
Channel photo updated
❔ Interview Question

What does nonlocal do and where can it be used?

Answer: nonlocal allows you to modify a variable from the nearest enclosing function without creating a new local one. It only works inside a nested function when you need to change a variable declared in the outer, but not global, scope.

This is often used in closures to maintain and update state between calls to the nested function.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3
πŸ’Έ PacketSDK--A New Way To Make Revenue From Your Apps

Regardless of whether your app is on desktop, mobile, TV, or Unity platforms, no matter which app monetization tools you’re using, PacketSDK can bring you additional revenue!

● Working Principle: Convert your app's active users into profits πŸ‘₯β†’πŸ’΅

● Product Features: Ad-free monetization 🚫, no user interference

● Additional Revenue: Fully compatible with your existing ad SDKs

● CCPA & GDPR: Based on user consent, no collection of any personal data πŸ”’

● Easy Integration: Only a few simple steps, taking approximately 30 minutes

Join us:https://www.packetsdk.com/?utm-source=SyWayQNK

Contact us & Estimated income:
Telegram:@Packet_SDK
Whatsapp:https://wa.me/85256440384
Teams:https://teams.live.com/l/invite/FBA_1zP2ehmA6Jn4AI

⏰ Join early ,earn early!
❀3
🐍 Tricky Python Interview Question

> What will this code output and why?


def extend_list(val, lst=[]):
    lst.append(val)
    return lst

list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a')

print(list1, list2, list3)


❓Question: Why are list1 and list3 the same?

πŸ” Explanation:

Default arguments in Python are evaluated once β€” at function definition, not at each call.

So lst=[] is created once and preserved between calls if you don't explicitly pass your own list.

🧠 What happens:

- extend_list(10) β†’ uses the shared list [], now it is [10]

- extend_list(123, []) β†’ creates a new list [123]

- extend_list('a') β†’ again uses the shared list β†’ [10, 'a']

πŸ‘‰ Result:

[10, 'a'] [123] [10, 'a']

βœ… How to fix:

If you want a new list created by default on each call, do this:


def extend_list(val, lst=None):
    if lst is None:
        lst = []
    lst.append(val)
    return lst


This is a classic Python interview trap β€” mutable default arguments.

It tests if you understand how default values and memory scope work.

https://t.iss.one/DataScienceQ ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5
⛓️ Tricky Python Interview Question

> What will this code output and why?

funcs = []
for i in range(3):
funcs.append(lambda: print(i))

for f in funcs:
f()


❓ Question: Why does this code print 2, 2, 2 instead of 0, 1, 2?

πŸ” Explanation:

This is a classic example of late binding in Python closures. The lambda functions don't capture the value of i at each step of the loop. Instead, they all hold a reference to the same variable i.

🧠 What happens:

β€’ The for loop completes. By the end of the loop, the variable i holds the value 2.
β€’ The funcs list contains three functions, but each one is defined to print the value of whatever i is at the time of execution.
β€’ When you call each function f(), it looks up the current value of i in its enclosing scope, which is 2.

πŸ‘‰ Result:

2
2
2

βœ… How to fix:

You can force the lambda to capture the value of i at the time of definition by using a default argument.

funcs = []
for i in range(3):
# The default argument captures i's value at definition time
funcs.append(lambda num=i: print(num))

for f in funcs:
f()

This trick works because default arguments are evaluated when the function is defined, not when it's called. This will correctly print:

0
1
2

This is a common interview question that tests your understanding of closures, scope, and late binding in Python.

━━━━━━━━━━━━━━━
By: @DataScienceQ ✨
❀5
❔ Interview question

How does Django handle an HTTP request?

Answer: When Django receives an HTTP request, it goes through several stages. First, the request enters the routing system (URLconf), where the appropriate view is selected by the address. Then a function or class-based view is called, which executes the logic: it may access models, prepare data, and select the appropriate template.

After that, the template forms an HTML response based on the provided data, and Django sends it back to the client.

This is how Django organizes work following the MVT pattern: URL β†’ view β†’ logic and data β†’ template β†’ HTTP response.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀2
❔ Interview Question

How does the module import mechanism work in Python and what is sys.path?

Answer: When importing a module, Python searches for it in the directories listed in sys.path. This list includes the current directory, standard Python installation paths, and manually added paths. If the module is not found, a ModuleNotFoundError is raised.

tags: #interview

➑️ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3
PyData Careers
πŸ’Έ PacketSDK--A New Way To Make Revenue From Your Apps Regardless of whether your app is on desktop, mobile, TV, or Unity platforms, no matter which app monetization tools you’re using, PacketSDK can bring you additional revenue! ● Working Principle: Convert…
I want to share a tool that I genuinely believe can make a real difference for anyone building apps: PacketSDK. Many developers have strong active-user bases but still struggle to increase revenue. That’s exactly why this solution stands outβ€”it adds extra income without disrupting users or interfering with your existing monetization methods.

Why I strongly recommend it:

* It turns your active users into immediate profit without showing ads.
* Integration is fast and straightforwardβ€”around 30 minutes.
* It works on all platforms: mobile, desktop, TV, Unity, and more.

As a channel owner, I recommend trying this service; you have nothing to lose.

I used it and found its earnings amazing.
❀2
Interview question

What will this code output and why?


a = [1, 2, 3]
b = a

a += [4, 5]

print(a)
print(b)

a = (1, 2, 3)
b = a

a += (4, 5)

print(a)
print(b)


Try to answer yourself first, then check the explanation.


Part 1. Lists
a = [1, 2, 3]
b = a

a += [4, 5]

print(a)
print(b)


Step-by-step:

a = [1, 2, 3]


Variable a refers to the list [1, 2, 3].

b = a
Now b refers to the same list as a.
Not a copy, but the very same object in memory.

a += [4, 5]
Important: for lists, += works as an in-place modification:
this is roughly the same as:

a.extend([4, 5])


That is, elements 4 and 5 are added to the existing list that both a and b refer to.

Therefore:

print(a)  # [1, 2, 3, 4, 5]
print(b)  # [1, 2, 3, 4, 5]


Both point to the same modified list.

Part 2. Tuples
a = (1, 2, 3)
b = a

a += (4, 5)

print(a)
print(b)


Tuples are immutable, and here the magic begins.

a = (1, 2, 3)
a refers to the tuple (1, 2, 3).

b = a
b refers to the same tuple (1, 2, 3).

a += (4, 5)
For tuples, += cannot modify the object in place (they are immutable).
So Python does this:

a = a + (4, 5)


That is, a new tuple (1, 2, 3, 4, 5) is created and variable a is reassigned to it.

b still points to the old tuple (1, 2, 3).

Therefore:

print(a)  # (1, 2, 3, 4, 5)
print(b)  # (1, 2, 3)

The trick

For the list, a += [4, 5] mutates the object in place, visible through all variables referencing it.

For the tuple, a += (4, 5) creates a new object and reassigns only a.

In summary:


# List part:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

# Tuple part:
(1, 2, 3, 4, 5)
(1, 2, 3)


If you want, I can explain another tricky question β€” about mutable default arguments in functions or about loops and closures.

https://t.iss.one/DataScienceQ
❀7
πŸͺ™ +30.560$ with 300$ in a month of trading! We can teach you how to earn! FREE!

It was a challenge - a marathon 300$ to 30.000$ on trading, together with Lisa!

What is the essence of earning?: "Analyze and open a deal on the exchange, knowing where the currency rate will go. Lisa trades every day and posts signals on her channel for free."

πŸ”ΉStart: $150
πŸ”Ή Goal: $20,000
πŸ”ΉPeriod: 1.5 months.

Join and get started, there will be no second chanceπŸ‘‡

https://t.iss.one/+L9_l-dxOJxI2ZGUy
https://t.iss.one/+L9_l-dxOJxI2ZGUy
https://t.iss.one/+L9_l-dxOJxI2ZGUy
❀4
Reply Correct Answer πŸ‘‡

https://t.iss.one/DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3πŸ‘2πŸ”₯1
❔ Interview Question

What are optimistic and pessimistic locking in the context of databases?

Answer: These are two approaches to managing concurrent data access.

Pessimistic locking assumes conflicts are likely. Therefore, data is locked immediately upon reading or writing and remains locked until the end of the transaction. This prevents concurrent modifications but reduces scalability and can lead to deadlocks.

Optimistic locking assumes conflicts are rare. Data is read without locking, and before committing changes, a version check is performed to see if someone else has modified the data. If so, the transaction is rolled back and retried. This approach offers better performance under low contention.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3
❔ Interview question

What is ORM and what is SQLAlchemy used for?

Answer: ORM (Object-Relational Mapping) allows interacting with the database through Python classes and objects instead of writing SQL queries manually.

With SQLAlchemy, you can describe tables as classes, rows as objects, and perform SELECT, INSERT, UPDATE, DELETE operations through Python methods.

This simplifies working with databases, makes the code more readable, reduces the risk of SQL injections, and facilitates maintenance and migrations.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5