[Journey] The path from beginner to programmer

FOXLair

Junior Member
Joined
Jul 14, 2023
Messages
197
Reaction score
105
Hello everyone, I recently started learning programming, namely 2 weeks ago. My choice fell on the Python programming language. Yes, yes, experienced programmers will say learn C++. My programming knowledge is too low to learn C++.
I have chosen the main areas for myself: automation development, working with APIs, possibly software development, Python does not really fit into the latter area, but this will help me get acquainted with this area.
Now I have already started developing the first project.

The essence of the project is
Arbitration bot. We will compare prices from 2 crypto exchanges and find arbitrage situations. The script will be located on the server and constantly analyze prices. And send us the result via Telegram.

Thanks to everyone who joined my adventure. Below I will report my results :):suspicious:
 
Is the project for an agency or for an individual purpose
Project for individual purposes. More probably as a motivation to do something really interesting. And learn programming;)
 
IMG_20240618_082717_600.jpg
I would like to share some results :rolleyes:

I chose 2 crypto exchanges GateiO, Kucoin. At the moment, we submit a request to these exchanges, and receive prices for cryptocurrencies, and save the results to a file.txt.
The next stage is to compare prices.
 
Nice. Python is indeed a good programming language. Although it's really saturated, there is no doubt that it has a lot of demand as well. The arbitration bot is also a good project. I built one out this year for a client. The bot had to execute multiple trades in milliseconds to ensure best profits. So once you built out the bot, try to optimize it to execute multiple trades in milliseconds. That will give you some really good experience
 
I know you are new, but you are starting out in a very time-sensitive territory.
You may want to start learning some basic C/C++ by converting your Python code over, because applications involving monetary functionality need to work very quickly. Python, being an interpreted language, is rarely used when it comes to monetary applications.

For learning, sure. But production use should be in a faster, compiled language if any actual trading is being done.
 
Great will be following you're journey I am also Doing the exact things and just started out First I am trying to learn all basics of JavaScript Html and css So i can Build websites on my own... my Second step will be learning python automation to scrap things and make bots that will be the outline rest depends on my hardwork !
 
Small steps in programming can come on to giant leaps and bounds after a few concentrated weeks and months, so stick at it; Python is great to start; learn whatever you need to get the job done. I started building WordPress plugins to customise a wp site, as I felt that was the best way to bring my vision to life and the quickest, cause I know SQL, PHP, and JS
 
My programming knowledge is too low to learn C++
The trick is to learn programming in general. Rewrite one project 8 times in some technology like javascript.

It's easier than Python. I don't recommend Python.

JavaScript in node.js or PHP for start will do.

For frontend learn document object model manipulation.

Arbitration bot. We will compare prices from 2 crypto exchanges and find arbitrage situations. The script will be located on the server and constantly analyze prices. And send us the result via Telegram.
I don't know what that is but doesn't sound like a plan for next 10 years.

Especially that you picked "2 exchanges" which means your program is tightly coupled (dependent) on some internet sites. Lol imagine Windows or MacOS were dependent on some exchanges. :suspicious:

Short term projects are exercises at best, but they pretend to be something more and it's kinda confusing for us.

It doesn't really teach us a lot and it feels like we're doing a lot. Realistically it's 80% time wasted.

Also you picked Python which is really hard language, it's the same as C++.

I think you should start from studying building bricks like objects, classes, functions. General programming concepts.
Write down what patterns you observe.
Don't stress about data structures or algorithms. Just grasp concepts using some tools like this https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

Do something funny like make music using program like Sonic Pi.

Don't do soul killing projects with no future.

Grab a thing that teaches you fundamentals like this https://www.freecodecamp.org/news/harvard-university-cs50-computer-science-course-2023/
 
Last edited:
The trick is to learn programming in general. Rewrite one project 8 times in some technology like javascript.

It's easier than Python. I don't recommend Python.

JavaScript in node.js or PHP for start will do.

For frontend learn document object model manipulation.


I don't know what that is but doesn't sound like a plan for next 10 years.

Especially that you picked "2 exchanges" which means your program is tightly coupled (dependent) on some internet sites. Lol imagine Windows or MacOS were dependent on some exchanges. :suspicious:

Short term projects are exercises at best, but they pretend to be something more and it's kinda confusing for us.

It doesn't really teach us a lot and it feels like we're doing a lot. Realistically it's 80% time wasted.

Seconding that. While there are definitely easier and more complicated languages, you mainly want to build a basic understanding and almost learn a new way of thinking. Then it’ll be easier to switch technologies in the future
 
Compare what Python is used for in general and what JavaScript is used for in general.

Python is for data, doing math operations, vector operations in Pandas and more.

It's NOT fun stuff. It's only fun for those who have heavy math / physics background, but for them well, they have years of logic and reasoning under their belts.

For fun stuff like building sites, cloaking and stuff, you do PHP + Laravel or node.js + puppeteer.

Python has a hard ecosystem. It's only simple when you consider the most basic syntax.

But problems start to arise when you realize Python is complicated and if you want to make a site in Python, you'll probably have to start from a framework like Django. Nothing good for start.
 
Compare what Python is used for in general and what JavaScript is used for in general.

Python is for data, doing math operations, vector operations in Pandas and more.

It's NOT fun stuff. It's only fun for those who have heavy math / physics background, but for them well, they have years of logic and reasoning under their belts.

For fun stuff like building sites, cloaking and stuff, you do PHP + Laravel or node.js + puppeteer.

Python has a hard ecosystem. It's only simple when you consider the most basic syntax.

But problems start to arise when you realize Python is complicated and if you want to make a site in Python, you'll probably have to start from a framework like Django. Nothing good for start.
You're overthinking it. Python is an easy to learn and easy to type language, making it ideal for beginners to grasp fundamental programming concepts, which is the most important thing. Once you understand these concepts, you can transition to almost any other language with ease.

His project isn't complex at all. In my opinion, if he focuses enough, he could complete it within a month.
 
You're overthinking it. Python is an easy to learn and easy to type language, making it ideal for beginners to grasp fundamental programming concepts, which is the most important thing. Once you understand these concepts, you can transition to almost any other language with ease.

His project isn't complex at all. In my opinion, if he focuses enough, he could complete it within a month.
No. Look up computer science degrees. They teach it in a different order.

A self taught developer can learn everything to write what they want in 2 years or in 10 years depending on how much they get lost.

Everyone gets lost but the question is will you find the way out of this maze?

Some people never do and they just quit.
 
If you learn Java as your first language, it's probably the quickest road to writing enterprise software. The rest is less clear cause Java is what it is - a practical language for business.

Are you a scientist or a businessman? Or you're a scientist in business?

Well, I'm only a businessman, so I'm not touching Python!

Python - good practices - learning how to write standardized code - good luck with that.
All you're gonna learn is that indentation is necessary and brackets aren't. What a useful knowledge bro.

Has anyone tried to decode average Python code? It's like trying to read hieroglyphs lol.

Python:
from sklearn.ensemble import HistGradientBoostingRegressor
import numpy as np
import matplotlib.pyplot as plt

# Simple regression function for X * cos(X)
rng = np.random.RandomState(42)
X_1d = np.linspace(0, 10, num=2000)
X = X_1d.reshape(-1, 1)
y = X_1d * np.cos(X_1d) + rng.normal(scale=X_1d / 3)

quantiles = [0.95, 0.5, 0.05]
parameters = dict(loss="quantile", max_bins=32, max_iter=50)
hist_quantiles = {
    f"quantile={quantile:.2f}": HistGradientBoostingRegressor(
        **parameters, quantile=quantile
    ).fit(X, y)
    for quantile in quantiles
}

fig, ax = plt.subplots()
ax.plot(X_1d, y, "o", alpha=0.5, markersize=1)
for quantile, hist in hist_quantiles.items():
    ax.plot(X_1d, hist.predict(X), label=quantile)
_ = ax.legend(loc="lower left")

lol wtf??

JavaScript:
const { createServer } = require('node:http');
const hostname = '127.0.0.1';
const port = 3000;
const server = createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});
server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
hmmm

Servers? Who needs websites on the internet to make money?
Ain't nobody need servers...

Java:
/**** Main.java ****/
import java.awt.*;
import java.awt.event.*;
public class Main extends Frame implements MouseListener {
 Label l;
 Main() {
 super("AWT Frame");
 l = new Label();
 l.setBounds(25, 60, 250, 30);
 l.setAlignment(Label.CENTER);
 this.add(l);
 this.setSize(300, 300);
 this.setLayout(null);
 this.setVisible(true);
 this.addMouseListener(this);
 this.addWindowListener(new WindowAdapter() {
 public void windowClosing(WindowEvent e) {
 dispose();
 }
 });
 }
 public static void main(String[] args) {
 new Main();
 }
 @Override
 public void mouseClicked(MouseEvent e) {
 l.setText("Mouse Clicked");
 }
 @Override
 public void mousePressed(MouseEvent e) {
 }
 @Override
 public void mouseReleased(MouseEvent e) {
 }
 @Override
 public void mouseEntered(MouseEvent e) {
 l.setText("Mouse Entered");
 }
 @Override
 public void mouseExited(MouseEvent e) {
 l.setText("Mouse Exited");
 }
}

Nah... Python is easiest...
Inheritance? Nah... Just do some defs in Python.

Why is Python so easy to "learn"?

Cause its interpreter will accept anything you put there.
Well, that's one of the reasons people writing Python don't learn how to structurize their code efficiently for years.

Similar situation is in JavaScript, but that's why you use TypeScript.
 
Last edited:
Good Luck FOXLair!
Can i ask you why do they say it's better to learn c++?
C++ is more versatile and powerful but it's a language where you can't "cheat". You have to stick to the rules of programming and actually engineer / design code. Everything is more detailed and so you learn a lot more, but for starters it will be too much.

In Python which is very powerful as well you can violate good practices, but in JavaScript (lol) you can create a nuclear bomb on the internet.

Everything will be useless if you don't have a clear goal and do projects like "connect x with y for the sake of connecting it or making $10 a day".

No, study via exercises, then apply in a complex project that has real use in real world. Solve real problems.

For simple automation you can use no-code tools. There's no need to dabble in code if you have small goals. It's engineering and if you engineer small things only for yourself, it's too much effort. You won't feel rewarded and you'll give up due to feeling miserable with what you build and achieve (nothing or useless code that wouldn't be accepted in any project).

Don't build "simple projects" that no sane person would be interested in buying.

Everything that has to deal with huge amount of data being processed in real time like video rendering, very big, extremely graphical games, it's usually done with C++.

Now try to render a video using JS or Python without using C/C++ under the hood. NO WAY!

You want to make $10 an hour? Get a job. Problem solved. That's how you solve problems.
You don't build machines to just survive. That's not how problems are solved.

Coding shouldn't be used to solve personal problems. First solve problems without code, then with code to scale solutions.

---

Arbitrage bot? Are you at least making $20k a month to do something so highly advanced? Probably not, cause if you would, you wouldn't code it but send it to someone (outsource).

1718784912070.png

It sounds like "get rich quick scheme". Good luck getting rich quickly.

Then they come and say "I don't have any money, lost $xxK, blah blah...". Guess why? They believe this is actually feasible and will work.

It's more of a fool scheme. A fool fools a fool to fool a fool. Who is the fool? This is an equation.

I've never heard of anyone successful who made moderate wealth starting with crypto.
They're always rich in the beginning. Chances of making wealth in crypto without already having wealth are like 0.01%.

Btw, this screenshot is from a "software development company" website.
Guess what that means?
It's an easy project for them. Easy money. They lure the traffic using SEO.
They provide something that DOESN'T work in real world but on paper.
And they cash in money.

Go to non-crypto investment blogs and such sites, and there it will be explained more realistically.
 
Last edited:
I don't know what that is but doesn't sound like a plan for next 10 years.
This is my first practice in programming.

Especially that you picked "2 exchanges" which means your program is tightly coupled (dependent) on some internet sites
Let's start with the fact that my choice fell on these exchanges. Once it looks like something of a program, I'll try to add more crypto exchanges.
Good Luck FOXLair!
Can i ask you why do they say it's better to learn c++?
Most complex programs are built using C++.
 
@FOXLair great reply, I think you should just continue building this project and not get side tracked or get involved in more technical discussions yet.

Doesn't matter if it makes money or loses a bit, you're passionate about it and it's decently complex.
That will help you push through some struggles, figure out solutions, understand code from stackoverflow and learn a lot more than just following some tutorial

Best of luck! I'm sure you'll look back on this project and how you got started some day
 
You have a solid plan. I have interest in programming too. I will be following your journey.
 
This is my first practice in programming.


Let's start with the fact that my choice fell on these exchanges. Once it looks like something of a program, I'll try to add more crypto exchanges.

Most complex programs are built using C++.
Yeah. When I started in it I was so clueless about what I was doing that I learned 5 programming languages, 10 frameworks, 5 CMS and after 7 years I discovered what it is about. It's kinda scary how many years it may take to find your path.

I built multiple projects and after a month or two I would abandon them cause I realized it's invalid and it won't take off. I followed ideas of other people too much. There's a lot of pitfalls.

I mean, I learned marketing, programming, engineering and mindset all at the same time. Which is a lot to learn.
 
Back
Top