Thảo luận  Góc Lập Trình

jablonec
Cũng là một người hơi hơi mê bên lập trình, mãi sau này mình mới có hướng đi và đang xây dựng nền tảng cho đam mê này mỗi ngày. Để hiểu thêm về lập trình và cần chia sẻ kinh nghiệm của mỗi người về lập trình. Mình lập topic này mong muốn trao đổi và học hỏi kiến thức.
1. Học lập trình có khó không?
2. Học lập trình có cần giỏi toán không?
3. Học lập trình nên bắt đầu từ đâu?
.....
Cảm ơn mọi người đã đọc topic.

21.jpg
 
Sửa lần cuối:
Trả lời

dammage

Rìu Chiến
Mình cũng nghĩ như bạn, nhưng mỗi nỗi đọc cuốn này nó bảo khai báo trên thay thế hàm main(), mà khi bổ sung thêm hàm main() thì lại báo lỗi.

C:\Users\TC\OneDrive\Documents\TSLN\main.cpp|12|error: 'b' was not declared in this scope|
cuốn này là cuốn nào bạn
 

duypk

Rìu Sắt
một trong những cái mà lập trình đem lại cho tui đó là cách suy nghĩ logic và có hệ thống, từ những cái lớn bao trùm nhất như cái khung, kiến trúc hệ thống cho tới những chi tiết nhỏ như nhập xuất, cái gì nhất thời cần nhanh gọn, cái gì lâu dài cần ổn định bền vững...

tui thấy ai viết code lâu cũng tích lũy lại được 1 thư viện, cần xài cái nào chỉ việc link tới rồi include thôi
fV2jNq8.gif
Chính xác,
Mình cũng có 1 libraries nho nhỏ tự code từ a-z, lọ mọ tích lũy sửa rồi xóa rồi làm đủ kiểu không biết đến version thứ bao nhiêu rồi.
Đến giờ mặc dù xác định rõ cái thư viện đó không để vẽ với graphic mà chỉ xài vào mục đích xử lý logic, xử lý thuật toán, can thiệp tự động hóa 1 phần (cho chạy ngầm).
Đã xóa đi khá nhiều module ít xài, nhưng cũng vẫn thêm mới dựa theo thực tế nếu cần.
 

jablonec

Rìu Chiến Chấm
tui tìm đâu thấy chỗ nào nói thay thế hàm main đâu bạn, hơn nữa hàm main được quy ước là nơi chương trình bắt đầu, không có gì thay thế nó được
Đọc cuốn này cũng lắm lỗi bác ạ nhưng bù lại phải tìm hiểu và biết thêm được nhiều thứ. Code trên chỉ có 1 phần, còn phần sau là phần của int main().
Code:

#include <iostream>
#include<math.h>

using namespace std;
int gptb2(float a, float b, float c, float&p, float&q)
{
float d;
d=(b*b)-4*a*c;
if(d<0) return 0;
else if(d==0){p=-b/(2*a); return 1;}
else {
p=(-b+sqrt(d))/(2*a);
q=(-b-sqrt(d))/(2*a);
return 2;
}

}
int main(){
float a,b,c;
float p,q;
do{
cout<<"Nhap gia tri a (a!=0) ="; cin>>a;
cout<<"Nhap gia tri b= "; cin>>b;
cout<<"Nhap gia tri c= "; cin>>c;
}
while(!a);
int So = gptb2(a,b,c,p,q);
if(So ==0 ) {
cout<<"Phuong trinh da cho vo nghiem";
}
else if(So==1){
cout<<"Phuong trinh da cho co nghiem kep p=%.4f=" << p;
}
else{
cout<<"Phuong trinh da cho co hai nghiem phan biet"<<endl;
cout<< "p=" << p<<endl;
cout<< "q=" << q<<endl;
}
}
#include <iostream>
#include<math.h>

using namespace std;
int gptb2(float a, float b, float c, float*p, float*q)
{
float d;
d=(b*b)-4*a*c;
if(d<0) return 0;
else if(d==0){*p=-b/(2*a); return 1;}
else {
*p=(-b+sqrt(d))/(2*a);
*q=(-b-sqrt(d))/(2*a);
return 2;
}

}
int main(){
float a,b,c;
float p,q;
cout<<"Nhap he so a= ";cin>>a;
cout<<"Nhap he so b= ";cin>>b;
cout<<"Nhap he so c= ";cin>>c;
switch(gptb2(a,b,c,&p,&q))
{
case 0: cout<<"Phuong trinh vo nghiem"; break;
case 1: cout<<"Phuong trinh co nghiem kep p= "<<p; break;
case 2: cout<<"Phuong trinh co 2 nghiem phan biet: "<<endl;
cout<<"p= "<<p<< "va q= "<<q<<endl; break;
}
}
 
Sửa lần cuối:

capsl0ck

Gà con
Lập trình có khó không?
Nói thực mình thấy rất là khó đối với 1 thằng dân kinh tế như mình.

Học lập trình từ đâu?
Học lập trình từ lòng đam mê, tự tìm tòi, tự khám phá là chính. Nếu có khả năng, nếu có tài chính thì nên theo trường lớp bài bản.

Hồi 2012 mình đi làm, gom góp mấy tháng trời mua dc cái máy tính msi 2nd. Về khám phá vọc vạch bú lu xu, sau đó mò excel vba, lọ mọ tập tành code và tìm hiểu về code.
Sau đó qua C++, rồi qua mấy thằng lai lai C

Mong mỏi có cơ hội được tự tay mình viết app đẩy lên google play store mà khó quá. Vì thế là mình quyết định thôi khó quá bỏ qua, chú tâm vào công việc hiện tại, rảnh rảnh có thời gian code mấy cái logic tính toán finance như viết model định giá doanh nghiệp trên excel, viết mấy cái hàm quét data ngành, viết vài con bot đánh forex. Lấy code logic làm niềm vui, dùng code vào để tự động hóa 1 phần công việc, để có thể nếu kiếm dc thêm đồng nào từ nó thì lại càng zui.
mình cũng có cái mong muốn code được con app cho nó thỏa với nhu cầu :))
p/s. trên forum thì chắc xưng mình bác vậy thôi, chứ so tuổi thì chắc bác lớn hơn mình :))
 

jablonec

Rìu Chiến Chấm
Có ae nào đang bắt đầu với Swift không. Mình tay mơ mới bắt đầu học, ae nào học cùng thì cũng vui hơn
Ban đầu mình nghịch C, sau đó C++ và C#, tiếp theo nhảy vào java...Có tài liệu nào của Swift không bạn?? Gửi mình ít nhé.
mình cũng có cái mong muốn code được con app cho nó thỏa với nhu cầu :))
p/s. trên forum thì chắc xưng mình bác vậy thôi, chứ so tuổi thì chắc bác lớn hơn mình :))
Bác này @duypk, @dammage là các bậc tiền bối rồi.
 

dammage

Rìu Chiến
Đọc cuốn này cũng lắm lỗi bác ạ nhưng bù lại phải tìm hiểu và biết thêm được nhiều thứ. Code trên chỉ có 1 phần, còn phần sau là phần của int main().
Code:
mấy tài liệu VN lỗi nhiều lắm, hồi đó học môn cấu trúc dữ liệu ông thầy phát cho cái giáo trình có code mẫu mà bị lỗi tứ tung, gõ vô máy hông chạy được, hỏi ổng thì ổng kêu tự sửa đi coi như bài tập
awVJ99O.gif
 

jablonec

Rìu Chiến Chấm
Đây là bài của thành viên làm Mod trước đây thì phải:





Cái này của Mod @dongle905 cũng hay phết:

 

Handrf

Kiếm đá
về toán và lập trình, mình xin chia sẻ: để lập trình được k nhất thiết giỏi toán nhưng để lập trình tốt thì cần toán tốt.
ví dụ lúc viết thuật toán xử lý là lúc phân loại rất tốt 2 nhóm người này, người giỏi toán thường cho ra kết quả khả quan hơn
 

jablonec

Rìu Chiến Chấm
Ví dụ : Đối là hằng con trỏ. In hoa một xâu kí tự

#include <iostream>
#include<string.h>
#include<conio.h>

using namespace std;
void inhoa(const char*s)
{
char*t;
strcpy(t,s); // copy xâu s vào xâu t
cout<<s<<strupr(t); // in hoa xâu t
}
int main()
{
char*s="abcde";
inhoa(s);
}

Chương trình vẫn chạy mà không báo lỗi gì cả nhưng kết quả thì không có, đang hoang mang các bác ạ.
 

phongnd2910

Búa Gỗ Đôi
1. Học lập trình có khó hay không?
Theo cá nhân mình, việc khó hay không tùy vào cách nhìn nhận của mỗi người. Nếu nhìn theo mặt bằng lương chung thì ngành IT có hơi nhỉnh hơn đại đa số các ngành khác 1 xíu, số tín chỉ cho ngành IT cũng nhiều hơn. Ngành nào cũng có cái khó riêng của ngành đó, và tất nhiên là lương cao hơn thì sẽ chịu nhiều trách nhiệm, áp lực công việc nhiều hơn => túm cái váy lại là mình thấy ngành IT có hơi khó học hơn các ngành khác 1 "xíu".

2. Học lập trình có cần giỏi toán hay không?
Chơi đá bóng, bạn có cần có sức khỏe tốt, dẻo dai, khéo léo hay ko? Tất nhiên là có, nhưng nếu bạn ko có những thứ đó thì bạn có chơi được ko? Tất nhiên là được, ra đá vào trái bóng thì gọi là đá bóng rồi
Học IT ko yêu cầu bạn phải "quá" giỏi toán, nhưng nếu bạn giỏi toán và tư duy logic tốt thì đó là một lợi thế rất lớn của bạn

3. Học lập trình nên bắt đầu từ đâu trước?
_Bắt đầu bằng cách search google, tập cho search đúng keywork để tìm kiếm được những thông tin cần thiết để xem
_Tiếp xúc với những người có kinh nghiệm đi trước (đừng bao giờ nghe bọn tuyển sinh nói nha, bọn nó toàn chạy chỉ tiêu thôi, méo biết gì đâu)
_Và cuối cùng là cứ chơi đi đừng sợ, nếu có sai thì cũng là kinh nghiệm cho bản thân thôi
=> túm cái váy phần này lại là, nên học cách search google, học tiếng anh, chịu khó đọc tài liệu tiếng anh nhiều, hoặc tham gia các khóa seminar trước khi quyết định học cái gì đó. À một phần nho nhỏ nữa là, có người để truyền lửa cho mình là 1 điều tuyệt vời nha
 

duypk

Rìu Sắt
mình cũng có cái mong muốn code được con app cho nó thỏa với nhu cầu :))
p/s. trên forum thì chắc xưng mình bác vậy thôi, chứ so tuổi thì chắc bác lớn hơn mình :))
Hì mình 33 rồi, già rồi.
Nói chung làm gì cũng phải có đam mê bác ạ, có đam mê sẽ làm dc hết, chỉ khác cái là nhanh hay chậm mà thôi.
Mình thì tính thực tế, đam mê gì thì nó cũng bám vào việc làm sao từ cái đam mê nó đẻ ra dc tí nguồn thu thì càng mừng.
 

jablonec

Rìu Chiến Chấm
Khó khăn của nghề lập trình viên.

 

jablonec

Rìu Chiến Chấm
Đang chật vật với bài này các bác ạ. Tìm số lớn nhất trong 3 số: a,b,c.
Mình có tạo một file Sources với hàm main chính. main.cpp
Code:
#include <iostream>
#include "mylib.h"
#include "mathfunc.h"
using namespace std;

int main()
{
int a,b,c;
cout<<"a,b,c= "; cin>>a>>b>>c;
cout<<max(a,b)<<max(b,c)<<max(a,c)<<max(a,b,c);
}
Và hai file Headers với tên mylib.h và mythfunc.h
code mylib.h
#ifndef MYLIB_H_INCLUDED
#define MYLIB_H_INCLUDED

int max(int a, int b)
{
return (a>b? a: b);
}

#endif // MYLIB_H_INCLUDED
code mathfunc.h
#ifndef MATHFUNC_H_INCLUDED
#define MATHFUNC_H_INCLUDED
#include "mylib.h"

int max(int a, int b)
{
return (a>b? a: b);
}


#endif // MATHFUNC_H_INCLUDED
Mà chạy cứ báo lỗi này các bác ạ.
C:\Users\TC\OneDrive\Documents\GTLN\mylib.h|4|note: 'int max(int, int)' previously defined here|
C:\Users\TC\OneDrive\Documents\GTLN\mathfunc.h|5|error: redefinition of 'int max(int, int)'|
 

duypk

Rìu Sắt
Vì mình không được đào tạo bài bản nên mình ko biết viết thế nào. Nhưng để làm thì mình thường làm như sau:
Bài toán tìm số lớn nhất nếu chỉ có 3 số a.b,c thì mình sẽ làm đơn giản theo kiểu

bool Main(double a, double b, double c)
{
Print("Max = " + DoubleToString(MathMax(MathMax(b,c),a)));
return(true);
}


Còn nếu có n số và tìm giá trị lớn nhất thì mình sẽ dùng vòng lặp for

Tạo mảng data[n] = {a,b,c,...n};

double max = 0;
for(i=0,i<n,i++)
{
if(i==0) max = data[0];
if(data>max) max = data;
}

Print("Max = " + DoubleToString(Max));