• Развитие в электронике/схемотехнике. Есть ли аналог схеме ориентирования в программировании?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    1. Освоить базовый курс электротехники, чтобы понимать, куда, как и когда текут токи
    2. Освоить базовый курс по пассивным и активным радиоэлементам
    3. Выбрать направление: цифровая или аналоговая техника.
    4. Если аналоговая, то учимся делать радиоприемники, усилители и т.д.
    Если цифровая - проходим базовый курс цифровой схемотехники.
    Параллельно п.4 учимся паять и изучаем нормальный софт для проектирования схем и печатных плат (P-CAD, Altium designer, Eagle)

    Советы сразу брать ардуино мне не по душе, потому как без базовых сознаний аналоговой и цифровой схемотехники сложно к ней приделать что-то более интересное, чем пара светодиодов. Надо хотя бы понимать, в чем разница между биполярным и полевым транзистором, как их использовать и чем опасно для транзистора реле и индуктивные нагрузки в целом.
    Более того, лично я допускаю сборку изделия из ардуины и кучи модулей только в одном случае: это макет. На этом макете я отработаю софт и железо, потом разработаю свою печатную плату и на базе макета соберу красивое и работоспособное изделие. А макет будет разобран. Не вылезать за пределы ардуино с парой модулей и лапшой из кабелей это все равно что проектировать станки из детского конструктора. Можно, но ценность невелика.
    Ответ написан
    Комментировать
  • Станок с ЧПУ, с чего начать?

    @OsyaBender
    Почитайте про Mach3. ПО распространяется свободно. На алибабе можно купить как полный набор для станка , так и отдельные части, совместимые с данной программой. Можно, например, купить контроллер, драйвера для двигателей, двигатели, а саму конструкцию собрать самому, либо используя части от плоттеров(или чего иного), либо сделать здесь на заказ.
    ПО работает на G-кодах. Я встречал плагины для автокада(возможно, даже смогу найти их в архиве), переводящее чертеж в G-коды. Правда, только чертеж в двух плоскостях. Либо покрутить ArtCam, там куча трансляторов, вроде есть и для Mach3. Либо чуть почитать про G-коды и писать программу самому. Там ничего сложного, только нудно и долго.
    Вкратце, как это все работает. Компьютер с Mach3, в соответствии с программой, управляет контроллером. Контроллер, в соответствии с управляющими сигналами, непосредственно уже физически включает\отключает реле, которые коммутируют ток питания для двигателей. Ток для двигателей обеспечивают драйвера двигателей(не путать с драйверами в ПО) . Драйвера двигателей- отдельная плата\платы преобразующие и стабилизирующие ток для двигателей.
    Ответ написан
    Комментировать
  • Продажа IT-продукта. Как все организовать?

    @Elizavetta
    Matroid: gamedev/js-разработка
    Как обозначили выше, гипотеза о том, что продукт кому-то нужен, не доказана. А если доказана, то вы еще должны заполучить поток, из которого возникнут реальные клиенты.
    Но, важный момент, похоже, самого продукта еще нет. И вы можете очень сильно заблуждаться по затратам его реализации! Дело в том, что фрилансеры работают на очень частичных задачах, не видят всего фронта работ по созданию, поддержке, обновлениям, и могут, например, не подозревать, что их сделанные "задания" еще доделываются)
    Ответ написан
    Комментировать
  • Почему программисты часто не заканчивают работу над проектом?

    Pshkll
    @Pshkll
    Причина очевидна - человек не полностью заинтересован и мотивирован для работы с вами. Возможно причина в том, что вы мало платите, есть другие более оплачиваемые заказы.

    Выход прост - составлять ТЗ, подписывать договор (включать в него ТЗ) и не делать больше 30% предоплаты вплоть до конца завершения работы. Проверили - оплатили.
    Ответ написан
    1 комментарий
  • Чем нагружать низкоквалифицированного разработчика?

    Нужно уточнить, речь идёт именно о низкой квалификации (не знает элементарно язык) или об отсутствии опыта (т.е. инструменты свои знает, но плохо знает используемые фреймворки, библиотеки, протоколы и т.д.).
    Если нет опыта, и у вас проводят ревью, то можно поручить ему несколько несложных тикетов из багтрекера. Это позволит ему покопаться в проекте и получить критику в свой адрес.

    Если всё же речь о квалификации, то лучше пусть пока книжки читает да принтеры заправляет.
    Ответ написан
    Комментировать
  • Чему перед ЕГЭ учиться?

    @huk6639
    Русскому языку, математике и двум предметам на выбор. На данном этапе только их
    Ответ написан
    Комментировать
  • Чему перед ЕГЭ учиться?

    sabramovskikh
    @sabramovskikh
    Ничего не пробуй. Сдавай ЕГЭ, поступай в ВУЗ на прогера, там то ты и будешь учить что скажут)
    Ответ написан
    Комментировать
  • Как спроектировать структуру классов текстового редактора?

    timych
    @timych
    На swing писал только в колледже, но от нечего делать немного переписал ваш код.
    Сильно заморачиваться не стал - вариантов архитектуры много..
    Но я бы посоветовал не увлекаться обьявлением переменных как членов класса, если не планируется их использовать. Также по возможности не включайте много логики в конструктор (ИМХО)
    Ну и названия классов не очень правильные как мне кажется.
    Также различные размеры элементов и текстовые сообщения желательно обьявлять как константы.
    И не помешало бы добавить проверку -действительно ли выбранный файл - текстовый.

    package wordpad;
    
    public class RunTextEditor {
    
    	public static void main(String args[]) {	
    		
    		new Environment().run();
    
    	}
    }


    package wordpad;
    
    
    import javax.swing.*;
    import java.awt.*;
    
    // Название класса не правильное!
    public class Service extends JLabel {
    
    	private static final long serialVersionUID = 1L;
    
    	public Service() {
    		super();
    		setPreferredSize(new Dimension(200, 30));
    		setHorizontalAlignment(SwingConstants.CENTER);
    	}
    
    	public Service(String message) {
    		this();
    		setMessage(message);
    	}
    
    	public void setMessage(String message) {
    		setText(message);
    	}
    }


    package wordpad;
    
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    
    //  Я бы переименовал в  FileManager или что-то подобное 
    public class LoadFile {
    
    	private FileHandler handler;
    
    	// интерфейс обработчика можно вынести и в  отдельный класс
    	public interface FileHandler {
    		
    		void onLoad(Document document);
    
    		void onSave(Document document);
    
    		void onError(String message);
    	}
    
    	// конструктор приватный чтобы не проверять обработчик на null
    	private LoadFile() {
    	}
    
    	public LoadFile(FileHandler handler) {
    		this();
    		setHAndler(handler);
    	}
    	
    	
    	public FileHandler getHandler() {
    		return handler;
    	}
    	
    	public void setHAndler(FileHandler handler) {
    		this.handler =  handler;
    	}
    
    	public void processLoad(File file) {
    
    		if ( file == null || !file.exists()) {
    			handler.onError("No filename present");
    			return;
    		}
    
    		try {
    			FileReader fileReader = new FileReader(file);
    			String text = new String(Files.readAllBytes(Paths.get(file.getAbsolutePath())));
    			Document document = new Document(file.getName(), 0, text);
    			fileReader.close();
    			handler.onLoad(document);
    		} catch (IOException exc) {
    			handler.onError("Error opening or reading file.");
    		}
    	}
    }


    package wordpad;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    
    import javax.swing.JFileChooser;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    
    import wordpad.LoadFile.FileHandler;
    
    
    public class FileMenu extends JMenuBar {
    
    	private static final long serialVersionUID = 1L;
    
    	private FileMenu() {
    		super();
    	}
    
    	public FileMenu(FileHandler handler) {
    		this();
    		JMenu menu = new JMenu("File");
    		JMenuItem loadItem = new JMenuItem("Load");
    		JMenuItem saveItem = new JMenuItem("Save");
    		JFileChooser fileChooser = new JFileChooser();
    		LoadFile fileManager = new LoadFile(handler);
    
    
    		menu.add(loadItem);
    		menu.add(saveItem);
    		add(menu);
    		loadItem.addActionListener(new ActionListener() {
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    
    				int result = fileChooser.showOpenDialog(null);
    
    				if (result == JFileChooser.APPROVE_OPTION) {
    					File file = fileChooser.getSelectedFile();
    					fileManager.processLoad(file);
    				} else {
    					fileManager.getHandler().onError("No file selected.");
    				}
    			}
    		});
    		
    		//TODO добавьте сохранение сами :)
    
    	}
    }


    package wordpad;
    
    import javax.swing.*;
    
    import wordpad.LoadFile.FileHandler;
    
    import java.awt.*;
    
    // Не очень красивое название класса на мой взгляд
    public class Environment {
    
    	private JTextArea textArea;
    	private JFrame mainFrame;
    	private Service statusMessage;
    
    	private FileHandler handler = new FileHandler() {
    
    		@Override
    		public void onSave(Document document) {
    			statusMessage.setText(document.getFileName() + " saved!");
    		}
    
    		@Override
    		public void onLoad(Document document) {
    			textArea.setText(document.getContent());
    			statusMessage.setText(document.getFileName() + " loaded");
    		}
    
    		@Override
    		public void onError(String message) {
    			statusMessage.setText(message);
    		}
    	};
    
    	public Environment() {
    
    		mainFrame = new JFrame("Text Editor");
    		mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    		mainFrame.getContentPane().setLayout(new FlowLayout());
    		mainFrame.setSize(270, 420);
    
    		textArea = new JTextArea();
    		JScrollPane jScrollPane = new JScrollPane(textArea);
    		jScrollPane.setPreferredSize(new Dimension(250, 200));
    		jScrollPane.getViewport().add(textArea);
    
    		FileMenu fileMenu = new FileMenu(handler);
    
    		mainFrame.setJMenuBar(fileMenu);
    		Container container = mainFrame.getContentPane();
    		container.add(jScrollPane);
    		statusMessage = new Service();
    		container.add(statusMessage);
    
    	}
    
    	public void run() {
    		mainFrame.setVisible(true);
    	}
    }


    package wordpad;
    
    /**
     * @author Timur Nikiforov
     */
    public class Document {
    
    	private String fileName;
    	private String content;
    	// Для чего нужна позиция каретки?
    	private int caretPosition;
    
    	public Document(String fileName, int caretPosition, String content) {
    		this.setFileName(fileName);
    		this.setCaretPosition(caretPosition);
    		this.setContent(content);
    	}
    
    	public String getFileName() {
    		return fileName;
    	}
    
    	public void setFileName(String fileName) {
    		this.fileName = fileName;
    	}
    
    	public String getContent() {
    		return content;
    	}
    
    	public void setContent(String content) {
    		this.content = content;
    	}
    
    	public int getCaretPosition() {
    		return caretPosition;
    	}
    
    	public void setCaretPosition(int caretPosition) {
    		this.caretPosition = caretPosition;
    	}
    }


    ЗЫ: B как сказали выше - испульзуйте лучше JavaFX
    По поводу книги: вот неплохая и читается легко.
    Ответ написан
    4 комментария
  • Какую фантастику порекомендуете, где главный герой программист/инженер?

    @GeraldIstar
    Frontend
    Криптономикон. Не фантастика, но ГГ инженер/прогер. Очень крутая книжка.
    Ответ написан
    2 комментария
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    zo0m
    @zo0m
    full stack developer
    Самому писать сложно не (только) потому, что не хватает скиллов, а потому, что приходится делать абсолютно все и не на кого положиться. Куча обязательных мелочей, часть из которых обычно можно делегировать напарнику или команде, со временем начинает утомлять и все сложнее эффективно работать. Мне кажется по этой причине множество "сольных" проектов не доходят до логического завершения.
    Ответ написан
    Комментировать
  • Для новичка лучше учить ЯП исходя из задач, которые хочется решать или наиболее простой язык?

    @vilgeforce
    Раздолбай и программист
    Изучайте C/C++, потом все си-подобные языки легко пойдут, плюс будете знать язык общего назначения.
    Ответ написан
    1 комментарий
  • Как научиться решать задачи?

    eruditecat
    @eruditecat
    Красноглазик
    Этот вопрос относится скорее к твоему отношению к жизни, нежели к какой-либо конкретной деятельности.
    1. Самое важное — быть верным себе.
    2. Но только после того, как ты определишься, что тебе надо от этой жизни. Каждому — своё, это верно. Уже выбрал? Следуй первому правилу. Нет? Хорошенько подумай.
    3. Практикуйся. Способность быстро разбираться в незнакомой ситуации — это тоже навык. Кто-то может сутки напролёт красноглазить за монитором, ковыряя (говно-)код, кто-то сутки напролёт не вылазит из под любимой тачки. Им нравится. А тебе? Будь упорным.
    4. Развивай кругозор, регулярно пополняй знания и впечатления об этом мире. Литература, туризм, экстрим, приключения, общение с разными людьми. Ты никогда не будешь слишком умён.
    Ответ написан
    Комментировать
  • Как податься в науку?

    @akonovalov
    Программист на компьютере
    Да всё просто: как закончите 1 курс (это важно!) идите на свою выпускающую кафедру по вашей специальности - будет вам столько науки, сколько захотите - поверьте, вам там будут очень рады, молодых кадров всегда не хватает в науке.
    Ответ написан
    Комментировать
  • Как держать в голове проект по программированию над которым работаешь не каждый день?

    @argumentum
    Кажется, автору вопроса надо внимательно проработать книги:
    1) Стив Макконнелл - "Совершенный код"
    2) Мартин Фаулер и др. - "Рефакторинг. Улучшение существующего кода."

    А по поводу "потом трудно вспомнить на чем я остановился, зачем введены те или или иные куски кода" - помогут системы управления версиями при условии комментирования изменений.
    Ответ написан
    3 комментария
  • Кто-то пользуется разделением рабочего времени?

    Andrey_Pletenev
    @Andrey_Pletenev
    Pletenev.com
    Оцени свою продуктивность в разное время. Это индивидуально, но обычно после 18 она ниже. Это биология. Другими словами, чтобы выполнить ту же работу ты потратишь больше времени и сделаешь ее немного хуже. Работай головой в те интервалы, когда это получается продуктивно. В те интервалы, когда начинаешь "тупить" - переключайся на дела, где больше руки-ноги задействованы. Когда определишь для себя эти интервалы, вот тогда уже их можешь делить на "работу" и "личные нужды".
    Ответ написан
    Комментировать
  • Учебник по математике, при почти нулевых знаниях?

    zooks
    @zooks
    Frontend
    Бери учебник алгебры за нужный класс и вперед, читай и решай задачки. Когда пройдешь до старших классов, купи задачник Сканави.

    Паралельно можешь читать Якова Перельмана для повышения интереса к предмету.
    Ответ написан
    Комментировать
  • Существует ли компьютер и ноутбук для разработки в удовольствие?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Думаю удовольствие от кодирования не связано с компьтером, но все же приятнее когда все работает быстрее, для того чтобы все работало "за долю секунды" нашел только 1 решение (несчитая ssd дисков), ставится Много оперативки, гигов 10-15 и прога наподобии primocache, ее суть в том, чтобы хэшировать в оперативку все обращения к диску, фактически получается примерно так, первый запуск студии 35 сек. компиляция 5 сек, второй и далее запуск студии 7 сек, компиляция <1 сек. Но платить за это удовольствие придется оперативкой, до 4 гиг на такую оптимизацию сожрется легко.
    Ответ написан
  • Где найти олимпиадные задачи с теорией и разборами?

    @kstyle
    1) Кажется, вы хотите минимизировать свои усилия. Не уверен, что это разумно.
    2) В том-то и дело, что рационализировать процесс открытия невозможно. Инсайт он и в Африке инсайт.
    3) Проблемы в паскале у Меньшикова? Там же по-русски много чего, а не чистый код. Может, это не ваше поприще? или темп большой взяли, что не усваивается ничего? Начните с более банальных задач.
    4) Возможно вам помогут классические учебники. Посмотрите по информатике 10-11 классы издательства Бином. Встречал в электронном виде.
    Ответ написан
    Комментировать
  • Как изучить математику?

    trinitr0
    @trinitr0
    провинциальный админ
    Посмотрите здесь

    www.mathprofi.ru

    Высшка очень доходчиво и системно подана, без излишеств.

    А из бумажных книг, то безусловно всё от Выгодского М.Я. и, далее, Бронштейн И.Н./Семендяев К.А.
    Ответ написан
    Комментировать